Как я могу перезапустить emacs и сохранить мои открытые буферы и интерактивную историю?

17

В качестве продолжения Каков самый быстрый способ перезагрузить мой файл .emacs, когда я внесу изменения, чтобы все затронутые мной буферы восприняли эти изменения?

Было предложено, чтобы вопрос о перезапуске задавался отдельно.

Есть ли простой способ открыть все предыдущие буферы и сохранить M-pинтерактивную историю команд?

b4hand
источник
Также актуально: emacs.stackexchange.com/questions/5428/…
PythonNut

Ответы:

16

desktop-save-modeобрабатывает сохранение и восстановление состояния буфера вашего сеанса. Он также может обрабатывать окна и рамы. Сведения о постоянстве переменных в сеансах см savehist-mode. По умолчанию он обрабатывает историю минибуфера, но не ограничивается этим. Еще одна интересная вещь, которая может быть интересна для сохранения - это, например, kill-ring.

Короче говоря:

(desktop-save-mode 1)
(savehist-mode 1)
(add-to-list 'savehist-additional-variables 'kill-ring) ;; for example
Сигма
источник
3
Это верно только для Emacs 24.4 или новее.
Дрю
@ Извини, какая именно часть?
Сигма
3
Я говорил о desktop.el, нет savehist. Сохранение и восстановление окон и фреймов было добавлено desktop.elв Emacs 24.4. И поддержка буферов, не связанных с файлами. Я почти все это (о настольном компьютере). ;-) Однако существует поддержка буферов, связанных с файлами до 24.4.
Дрю
Есть ли подобное решение в Emacs 24.3? Я использую 24.3.1.
b4hand
Нет. Как я уже сказал, он был добавлен в Emacs 24.4. Вы можете выбрать версию библиотеки Emacs 24.4 desktop.elи frameset.el(которая появилась в 24.4) и попробовать использовать ее с Emacs 24.3.
Дрю