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

问题描述:

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

谢谢

请参阅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

Emacs中的寄存器被设计为使用单键按下来访问,所以它们是用字符命名的。 ?x语法是一种字符语法。您可以将路径保存在普通变量中,或者使用散列表来避免污染变量名称空间,但是我不知道预先存在的程序包是否只能执行此操作。

我相信更常见的用例是只保留想要快速访问的文件,并经常打开,并坚持the session state。在iswitch之类的缓冲区之间切换可以更方便。

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

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

书签+是你想要什么:

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