2012-09-24 148 views
15

打开特定文件,我希望能够使用键盘快捷键来编辑我的.emacs文件,而不是键入按Ctrl-X按Ctrl-F的.emacs 输入每次(这里的an analogous question关于Vim)。这可能是一个明显的方法,但我找不到Emacs Lisp命令来打开文件。我认为这应该是以“打开”或“文件”开始,但是键入M-x并且这些术语似乎没有提出任何相关的。我试过快捷方式在Emacs

(global-set-key (kbd "<f6>") (find-file "~/.emacs")) 

但这并不奏效。

+2

奥列格提供了一个解决方案。请注意,您尝试*的方法是在使用参数'“〜/ .emacs”'调用''find'file'函数(它将返回一个缓冲区对象)时,返回值*返回*,然后指定缓冲区对象作为函数在输入''时调用。 – phils

回答

33

根据文档

(全球设置键键盘命令)

给予重点为COMMAND一个全球性的结合。 COMMAND命令是定义要使用的命令 ;通常它是一个命名为交互式可调用函数的符号。

所以,你必须使用一个交互式可调用的函数:

(global-set-key (kbd "<f6>") (lambda() (interactive)(find-file "~/.emacs"))) 

我个人更喜欢使用emacs registers来存储我经常使用的文件。 我将存储“〜/的.emacs”在寄存器:

(set-register ?e (cons 'file "~/.emacs")) 

并用C-x r j e

+5

对于〜/ .emacs(或者在我的情况下,〜/ .emacs.d/init.el),您可以使用变量user-init-file,该变量始终是加载用户配置文件的。 (find-file(或user-init-file“”)) – jpkotta

+3

非常感谢Oleg。寄存器非常棒!你甚至可以使用大写和小写字母,如下所示:'(set-register?x(cons'file“〜/ .xinitrc”))'和'(set-register?X(cons'file)〜/ .Xresources “))'。 –

1

书签打开它是为了这个目的,包装用的emacs是最佳选择。 这样,如果您可以看到要打开的文件列表,那么您可以轻松浏览它们。还有BookmarkPlus,它提供了各种选项。

M-x list-bookmarks