2011-12-19 90 views
3

在emacs中C-x r f將框架配置記錄到一個寄存器。我如何'看見'它? M-x view-register不顯示它。我還喜歡存儲不同的配置,並在emacs會話中根據需要重新調用它們。Emacs的框架配置

+0

我正在尋找類似於:M-x save-frame-configuration RET my-project-view-1。然後M-x load-frame-configuration RET my-project-view-1。 – aartist 2012-07-20 22:28:02

回答

2

C-X[RĴ勢必jump-to-register,你可以找到你在那裏需要的代碼。您可以使用M-xfind-functionM-xfind-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))) 
    ;; [...] 
    ))) 
+0

寄存器在Emacs會話中不是永久存在的,所以這不會真正響應請求。 – Drew 2011-12-21 00:54:19

+0

問題是:如何從寄存器獲取窗口配置?我相信,藝術家然後打算使用這些信息來實現跨會話的持久性,但沒有要求這樣做的幫助。 – phils 2011-12-21 02:22:36

+0

適合自己,但是aartist已經在你的帖子之前回復了choroba,(a)他知道如何在同一個會話期間從寄存器恢復幀配置,並且(b)他正在尋找如何跨越會話。這就是我留下評論的原因。 – Drew 2011-12-26 22:29:35

0

引用的文檔:

使用C-X讀Ĵř恢復一個窗口或幀結構。這是用於恢復光標位置的相同命令的 。當您恢復 框架配置時, 配置中未包含的任何現有框架將不可見。如果您想要刪除這些幀,請使用C-u C-x r j R

(其中R代表寄存器。)

+0

我正在尋找名稱/數字中的配置。我知道如何在會話中恢復它們。我喜歡將它們保存在emacs會話中。 – aartist 2011-12-19 18:07:23

+0

啊,我明白了。 '桌面保存',然後呢? – choroba 2011-12-19 19:34:33

0

隨着Bookmark+可以bookmark一個Emacs桌面。不幸的是,桌面不記錄框架配置。 (你也可以爲一個框架配置添加書籤,但是這僅僅是針對同一個Emacs會話,因爲它們不存在。)

但是,我相信有一些庫可以讓你永久保存窗口或框架配置然後恢復它)。例如,您可以嘗試Lennart Borgman的winsav.el。我知道幾年前他正在研究這個功能 - 不知道現在是什麼狀態。如果它有效,那麼你也可以爲持久幀配置添加書籤。

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的來源 - 這是不是最新的,但包括男人。

+0

Winsav做得很好。我正在尋找的是將不同的配置存儲到不同的註冊表中,並在會話中保持持久性。像M-x call-frame-configuration my-project-view1 – aartist 2012-07-20 22:25:40