2010-12-16 124 views
2

我在Emacs documentation中讀到Emacs支持在寄存器中存儲文件名,允許用戶通過命令C-x r j r快速檢索它們,其中r是寄存器的名稱。但是,這顯然限於單字符寄存器名稱。emacs中文件和目錄路徑的長名稱

E.g.下面的示例工作:

(set-register ?c '(file . "/gd/gnu/emacs/19.0/src/ChangeLog")) 

即它可以讓我通過只輸入C-x r j z訪問上面的文件ChageLog。

但是,如果我嘗試的路徑,以上面的文件存儲在寄存器中有較長的名稱,如:

(set-register ?clog '(file . "/gd/gnu/emacs/19.0/src/ChangeLog")) 

我收到以下錯誤消息從他Lisp解釋:

無效的讀取語法:「?」

我的問題是:是否有一種(簡單)的方式在emacs中使用長名稱別名存儲文件名(和目錄路徑),以便我可以快速訪問它們? (用於編輯文件,或在dired中加載它)。

謝謝

回答

2

請參閱Bookmarks

+0

謝謝懷遠。我正在研究這一點,但它看起來像書籤的主要功能是讓用戶能夠記錄稍後可以跳轉到的位置。如何使用書籤來存儲我可以手動輸入的預定義路徑,並且這些路徑會在Emacs會話中持續存在? – 2010-12-16 17:34:34

+1

您是否想要記住文件*路徑*(例如,用於屏蔽),還是想要訪問文件(或目錄)?如果是後者,那麼書籤絕對是你想要的。訪問一個文件/目錄,然後'C-x r m(輸入一個名稱)RET'來保存它。如果你現在殺死那個緩衝區,你可以用'C-x r b(書籤名稱)RET'來訪問它。書籤是永久性的 - Emacs會詢問您是否要退出時保存書籤(或者可以立即使用'M-x書籤保存'來執行此操作)。 – phils 2010-12-17 00:13:16

+0

您是否問過如何在不訪問文件等情況下手動輸入書籤的位置?如果是這樣,[這裏](http://www.emacswiki.org/emacs/BookmarkPlus#BookmarkingWithoutVisiting)的答案([Bookmark +](http://www.emacswiki.org/emacs/BookmarkPlus))。此外,您始終可以使用命令'bookmark-relocate'來更改與書籤關聯的目標文件(路徑)。 – Drew 2011-11-02 16:29:34

2

Emacs中的寄存器被設計爲使用單鍵按下來訪問,所以它們是用字符命名的。 ?x語法是一種字符語法。您可以將路徑保存在普通變量中,或者使用散列表來避免污染變量名稱空間,但是我不知道預先存在的程序包是否只能執行此操作。

我相信更常見的用例是隻保留想要快速訪問的文件,並經常打開,並堅持the session state。在iswitch之類的緩衝區之間切換可以更方便。

我也不明白爲什麼Bookmarks不適合您的使用情況。如果你真的想手工輸入路徑(add-to-list 'bookmark-alist '(bookmarkname (filename . "/path/to/your/file")))似乎工作,雖然訪問文件一次並保存書籤更簡單。

相關問題