如何使用 Emacs 保存当前打开的会话和缓冲区?
(desktop-save-mode 1)
仅在有一个打开的缓冲区时保存
2 回答
部分答案:保存所有缓冲区运行 save-some-buffers (例如通过文件菜单“执行命令”或更方便的 Mx 组合键)然后回答“!” 到第一个查询(意味着保存并且不再询问)。如果没有这样的提示,那么无论如何都不需要保存缓冲区。
至于“开放会话”,如果这意味着窗口布局、拆分位置等,那么三元组指向的问题很有用。但这比编辑器中通常的“全部保存”命令做得更多。
您可以在这里阅读更多相关信息:http: //tsdh.wordpress.com/2006/11/26/conveniently-save-and-restore-frame-configuration/
在 emacs 中,您可以在多个窗口中分割每一帧。这样的配置称为窗口配置。所有框架的窗口配置构成一个框架配置。这里有一些功能可以让您一键保存和恢复这样的框架配置。首先,我们定义一个寄存器,默认情况下将使用它来保存帧配置:
(defparameter th-frame-config-register ?° "The register which is used for storing and restoring frame configurations by `th-save-frame-configuration' and `th-jump-to-register'.")
接下来是保存功能。如果您使用前缀 arg 调用它,您可以选择不同的寄存器:
(defun th-save-frame-configuration (arg) "Stores the current frame configuration in register `th-frame-config-register'. If a prefix argument is given, you can choose which register to use." (interactive "P") (let ((register (if arg (read-char "Which register? ") th-frame-config-register))) (frame-configuration-to-register register) (message "Frame configuration saved in register '%c'." register)))
现在我们需要一个函数来恢复帧配置。默认情况下,它使用 th-frame-config-register,但使用前缀 arg 您可以选择任何寄存器。(您不仅可以使用此功能来恢复帧配置,还可以使用跳转到注册来执行所有操作……)
(defun th-jump-to-register (arg) "Jumps to register `th-frame-config-register'. If a prefix argument is given, you can choose which register to jump to." (interactive "P") (let ((register (if arg (read-char "Which register? ") th-frame-config-register))) (jump-to-register register) (message "Jumped to register '%c'." register)))
好的,我们要做的最后一件事是创建一些键绑定。我选择F5和F6:
(global-set-key (kbd "<F5>") 'th-save-frame-configuration) (global-set-key (kbd "<F6>") 'th-jump-to-register)
现在,每当您有一个复杂的窗口/框架配置时,按 F5 保存它并按 F6 恢复它。