emacs中文件和目录路径的长名称别名

时间:2010-12-16 16:33:54

标签: emacs lisp bookmarks

我在Emacs documentation中读到Emacs支持在寄存器中存储文件名,允许用户通过命令C-x r j r快速检索它们,其中r是寄存器的名称。但是,这显然仅限于单字符寄存器名称。

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中加载)。

由于

3 个答案:

答案 0 :(得分:2)

请参阅Bookmarks

答案 1 :(得分:2)

Emacs中的注册表旨在通过单键按键访问,因此它们以字符命名。 ?x语法是一种字符语法。您可以在正常变量中保存路径,或者使用散列表来避免污染变量名称空间,但我不知道预先存在的包来执行此操作而只是这样。

我认为更常见的用例是保留您想要快速/经常打开的文件,并坚持the session state。使用iswitch等方法可以更方便地在缓冲区之间切换。

我也不明白为什么Bookmarks不适合您的用例。如果你真的想手动键入路径(add-to-list 'bookmark-alist '(bookmarkname (filename . "/path/to/your/file")))似乎有效,虽然访问文件一次并保存书签更简单。

答案 2 :(得分:1)

您可以在不实际访问文件的情况下为文件添加书签。听起来就像你要求的那样:一种指定绝对文件名并获取书签的方法(这样你就可以使用较短的书签名称)。

书签+ 是您想要的:

http://www.emacswiki.org/emacs/BookmarkPlus#BookmarkingWithoutVisiting