Как запретить emacs загружать сохраненный рабочий стол при запуске?

Как запретить emacs загружать сохраненный рабочий стол при запуске?

Я знаю, что мы можем запустить emacs, не открывая файлы и статус последнего сеанса, запустите его так:

emacs --no-desktop

Но как это сделать в init.elфайле?

решение1

Просто убедитесь, что desktop-save-modeон выключен в вашем файле init. Если режим включен при запуске Emacs, то ваш сохраненный файл рабочего стола загружается. Если режим выключен, то он не загружается.

Затем вы можете включить режим в любое время, чтобы включить автоматическое сохранение. Или вы можете просто использовать , M-x desktop-saveчтобы сохранить его вручную в любое время.

Из строки документа desktop-save-mode:

Когда включен режим сохранения рабочего стола, состояние Emacs сохраняется из одного сеанса в другой. В частности, Emacs сохранит рабочий стол при выходе (это может вас подсказать; см. опцию `desktop-save'). При следующем запуске Emacs, если этот режим активен, рабочий стол будет восстановлен.


Да, эта конструкция автоматической загрузки в сочетании с автоматическим сохранением немного странная, ИМХО. Но это не самая странная вещь в конструкции desktop.el.

Это различие обусловлено предположением (встроенным в сигнатуры функций), что в каждом каталоге существует не более одного файла рабочего стола.

То, что пользователю может быть удобно иметь максимум один такой файл на каталог, это одно. Но делать функции зависимыми от этого предположения — это безумие.

Взгляните, например, на функцию desktop-read. Затем представьте, что вы хотите использовать ее для чтения файла рабочего стола, который может быть расположен где угодно, передавая абсолютное имя файла. Мне пришлось написать собственную функцию, чтобы сделать это (bmkp-desktop-read, которая принимает имя файла в качестве аргумента).

Связанный контент