Emacs的帧配置

时间:2011-12-19 16:46:44

标签: emacs elisp

在emacs C-x r f中记住帧配置到寄存器。我怎么能“看到”它? M-x view-register没有显示它。我还想存储不同的配置,并在emacs会话中根据需要重新调用它们。

4 个答案:

答案 0 :(得分:2)

C-x r j 绑定到jump-to-register,您可以在那里找到所需的代码。您可以使用 M-x find-function M-x find-function-on-key来方便地跳转到源。

该函数获取参数register,然后调用(get-register register)以获取数据。然后,以下代码处理根据需要恢复帧或窗口配置。

interactive的“c”代码表示一个字符,因此register参数只是一个字符。因此,您可以使用(get-register ?a)获取注册a

(defun jump-to-register (register &optional delete)
  (interactive "cJump to register: \nP")
  (let ((val (get-register register)))
    (cond
     ;; [...]
     ((and (consp val) (frame-configuration-p (car val)))
      (set-frame-configuration (car val) (not delete))
      (goto-char (cadr val)))
     ((and (consp val) (window-configuration-p (car val)))
      (set-window-configuration (car val))
      (goto-char (cadr val)))
     ;; [...]
     )))

答案 1 :(得分:1)

winsav.el库还活着,但新版本在Launchpad上作为nXhtml的一部分。获得winsav并设置它的最简单方法就是下载整个nXhtml并安装它。 (如果你希望它加载快,那么只需字节编译整个nXhtml - 从nXhtml菜单。)

如果由于某种原因认为最好只有winsav.el那么它就在util子目录中:

http://bazaar.launchpad.net/~nxhtml/nxhtml/main/files/head:/util/

(请注意,用于下载nXhtml的zip文件现在有点旧。实际上我的Emacs页面中的所有内容现在都有点旧了。除了nXhtml的某些部分我不时更新。以及源代码EmacsW32 - 它们不是最新的,但包括man。

答案 2 :(得分:0)

引用文档:

  

使用 C-x r j R 恢复窗口或框架配置。这是   用于恢复光标位置的相同命令。当你恢复   一个帧配置,任何现有的帧都不包括在内   配置变得不可见。如果您想删除这些帧   相反,使用 C-u C-x r j R

(其中R代表寄存器。)

答案 3 :(得分:0)

使用Bookmark+,您可以bookmark使用Emacs桌面。不幸的是,桌面不记录帧配置。 (您也可以为帧配置添加书签,但这仅适用于相同的Emacs会话,因为它们不存在。)

但是,我相信有些库可以让您持久保存窗口或框架配置(然后恢复它)。例如,您可以尝试Lennart Borgman的winsav.el。我知道几年前他正在研究这个功能 - 不知道现在的状态。如果它有效,那么你也可以为持久帧配置添加书签。