Восстановить Emacs Session/Desktop
Я искал, как восстановить сессию Emacs, но не повезло. Я ищу, чтобы восстановить все ранее открытые буферы, некоторые из которых могут содержать erc, оболочки, списки каталогов, файлы и т. Д.
Каждый раз, когда я открываю emacs, я трачу значительное количество времени на расстановку своих буферов; разбивая их на строки и столбцы, открывая оболочку, размещая каналы irc. На работу требуется время.
Я попытался добавить следующее в мой init.el
(desktop-save-mode 1)
А затем с помощью Mx desktop-save. Кажется, это только восстанавливает открытые файлы, а не оболочки или что-либо еще, работающее в буферах.
Я также проверил следующие вопросы:
- Управление сессиями в emacs с использованием библиотеки Desktop
- Emacs сессия / проекты / управление окнами
- Emacs: заново открывать буферы из последней сессии при запуске?
И прочитайте:
- DeskTop и EmacsSession на emacsWiki.org
Вот скриншот моего сеанса Emacs.
Простым ответом было бы просто сосредоточиться на реальной работе:P
3 ответа
Я бы предложил простое решение - создать функцию, которая настраивает ваш предпочтительный макет. Например, мне нравится иметь несколько каналов 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")))
Код довольно прост и не содержит проверки ошибок, но он подскажет вам, что я имею в виду.
Вы можете также рассмотреть возможность использования регистров для хранения некоторых конфигураций окна.
Как вы обнаружили, desktop.el и session.el - хорошее начало, но они не восстанавливают расположение окон.
Однако, используя revive.el, вы можете сохранять / восстанавливать произвольные конфигурации окон, которые запоминаются между перезапусками.
Также ознакомьтесь с этими советами, касающимися макетов окон, которые охватывают режим победителя и хитрость сохранения конфигураций окон в регистрах.
В дополнение к отличному ответу @Bozhidar об автоматизации макета вашего окна (который я делаю сам), вы также можете захотеть использовать GNU Screen, который можно использовать для сохранения произвольного набора процессов при входе в систему. Здесь есть довольно хорошее руководство, и, так как вы будете использовать emacs, вы также захотите прочитать его.