Восстановление сеанса/рабочего стола Emacs
Я искал, как восстановить сеанс emacs, без везения. Я ищу для восстановления всех ранее открытых буферов, некоторые из которых могут содержать erc, оболочки, списки каталогов, файлы и т.д.
Каждый раз, когда я открываю emacs, я трачу значительное количество времени на настройку своих буферов; разбивая их на строки и столбцы, открывая оболочку, упорядочивая каналы irc. Чтобы получить работу, требуется некоторое время.
Я попытался добавить следующее к init.el
(desktop-save-mode 1)
И затем используя M-x desktop-save. Кажется, это только восстанавливает открытые файлы, а не оболочки или что-то еще, запущенное в буферах.
Я также проверил следующие вопросы:
И прочитайте:
Здесь пример скриншота моего сеанса emacs.
Простым ответом было бы просто сосредоточиться на реальной работе: P
Ответы
Ответ 1
Я бы предложил простое решение - создайте функцию, которая настроит ваш предпочтительный макет. Например, мне нравится иметь некоторые каналы IRC во второй половине моего экрана в отдельных окнах, так что я могу время от времени смотреть на них, а, например, кодировать в другом окне. Поэтому я написал простой код, чтобы позаботиться о разбиении окна и упорядочить мои буферы, как я хочу:
;; show some buffers
(defun show-some-buffers (buffer-list)
(split-window-horizontally)
(other-window 1)
(dolist (buffer buffer-list)
(split-window-vertically)
(switch-to-buffer (get-buffer buffer))
(other-window 1))
;; at the end we have one extra window we need to delete
(delete-window)
(balance-windows))
;; show some erc buffers
(defun show-erc-buffers ()
(interactive)
(show-some-buffers '("#emacs" "#clojure")))
Код довольно прост и не имеет проверки ошибок, но он даст вам подсказку о том, что я имею в виду.
Возможно, вы захотите использовать registers, чтобы сохранить некоторые конфигурации окон.
Ответ 2
Как вы нашли, desktop.el и session.el - хороший старт, но они не восстанавливают макеты окон.
Однако, используя revive.el, вы можете сохранять/восстанавливать произвольные конфигурации окон, которые запоминаются между перезагрузками.
Также проверьте эти подсказки, касающиеся макетов окон, которые охватывают режим победителя и трюк сохранения конфигураций окон в регистрах.
Ответ 3
В дополнение к @Bozhidar отличный ответ на автоматизацию макета окна (который я сам делаю), вы также можете посмотреть в экран GNU, который можно использовать для сохранения произвольного набора процессов в логах. Там довольно хороший учебник здесь, и поскольку вы будете использовать emacs, вы также захотите дать this читать.