如何从上次会话恢复 Emacs 的窗口和缓冲区?

如何从上次会话恢复 Emacs 的窗口和缓冲区?

如何从上次会话恢复 Emacs 的窗口和缓冲区?

我想要的行为就像在网络浏览器中一样,你可以恢复上次会话中的所有选项卡。

答案1

此外自动地恢复你的最后一个 Emacs 会话状态,您还可以保存任意数量的会话状态,并在任何其他会话中根据需要恢复它们,次数不限。换句话说,您可以轻松地在不同的桌面

最简单的方法是加载库书签+并使用 key C-x r K将当前会话状态保存为桌面书签。然后,您可以使用 key 恢复任何会话中的任何桌面书签C-x j K

答案2

转到您的 .emacs 文件并输入(desktop-save-mode 1),这会将所有当前缓冲区保存到“桌面”文件,它不会保存您的框架的实际布局,但您可以查看“寄存器”。

答案3

以下是一些代码。要使代码运行,您需要安装“tapestry”Lisp 库。如果您使用 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)

相关内容