4

Как восстановить окна и буферы Emacs с последнего сеанса?

Мне нужно поведение, похожее на веб-браузер, при котором вы можете восстановить все вкладки с последнего сеанса.

3 ответа3

2

перейдите к вашему файлу .emacs и введите (desktop-save-mode 1), чтобы сохранить все текущие буферы в файл "desktop", это не сохранит фактическое расположение ваших кадров, но вы можете посмотреть "регистры" для этого.

1

Вот некоторый код, чтобы сделать это. Чтобы код работал, вам нужна установленная библиотека Lisp "tapestry". Если вы используете почтовую программу VM, у вас уже установлена библиотека. В противном случае вы можете скачать его здесь.

Поместите следующий код в ваш файл .emacs. Если вы хотите восстановить настройки окна и фрейма из вашего последнего сеанса Emacs, введите M-x load-my-tapestry RET .

(require 'tapestry)

(defvar my-tapestry-file "~/.tapestry")

(defun load-my-tapestry ()
  (interactive)
  (let ((b (find-file-noselect my-tapestry-file)))
    (sit-for 0)
    (set-tapestry (read b))
    (kill-buffer b)))

(defun save-my-tapestry ()
  (interactive)
  (let ((tap (tapestry)))
    (with-temp-buffer
      (let ((standard-output (current-buffer)))
        (setcar tap (make-list (length (car tap)) nil))
        (print tap)
        (write-region (point-min) (point-max) my-tapestry-file)))))

(add-hook 'kill-emacs-hook 'save-my-tapestry)
1

В дополнение к автоматическому восстановлению вашего последнего состояния сеанса Emacs , вы также можете сохранять любое количество состояний сеанса и восстанавливать их по требованию в любом другом сеансе любое количество раз. IOW, вы можете легко переключаться между различными рабочими столами.

Самый простой способ сделать это - загрузить библиотеку Bookmark+ и использовать клавишу C-x r K чтобы сохранить текущее состояние сеанса в качестве закладки рабочего стола. Затем вы можете восстановить любую настольную закладку в любом сеансе, используя клавишу C-x j K

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .