Восстановление сеанса/рабочего стола 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 читать.