0

如何使用 Emacs 保存当前打开的会话和缓冲区? (desktop-save-mode 1)仅在有一个打开的缓冲区时保存

4

2 回答 2

1

部分答案:保存所有缓冲区运行 save-some-buffers (例如通过文件菜单“执行命令”或更方便的 Mx 组合键)然后回答“!” 到第一个查询(意味着保存并且不再询问)。如果没有这样的提示,那么无论如何都不需要保存缓冲区。

至于“开放会话”,如果这意味着窗口布局、拆分位置等,那么三元组指向的问题很有用。但这比编辑器中通常的“全部保存”命令做得更多。

于 2014-02-12T17:27:45.173 回答
1

您可以在这里阅读更多相关信息: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))) 

好的,我们要做的最后一件事是创建一些键绑定。我选择F5F6

  (global-set-key (kbd "<F5>")
                  'th-save-frame-configuration) 
  (global-set-key (kbd "<F6>")
                  'th-jump-to-register) 

现在,每当您有一个复杂的窗口/框架配置时,按 F5 保存它并按 F6 恢复它。

于 2013-01-13T13:10:37.063 回答