我在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中加载)。
由于
答案 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