在Emacs中打开特定文件的快捷方式

20

我希望能够使用键盘快捷方式来编辑我的 .emacs 文件,而不是每次都要输入 Ctrl-XCtrl-F,然后输入 .emacsEnter(这里有一个关于 Vim 的 类似问题)。可能有一种显而易见的方法可以做到这一点,但我找不到 Emacs Lisp 命令来打开一个文件。我认为它应该以“open”或“file”开头,但在键入 M-x 和这些术语时似乎没有带来任何相关的东西。我尝试过:

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

但那行不通。


2
Oleg提供了一个解决方案。请注意,您尝试的是获取find-file函数(调用参数为“~/.emacs”时将返回缓冲区对象)返回的值,然后将该缓冲区对象分配为在键入<f6>时要调用的函数。 - phils
2个回答

50
根据文档,
(global-set-key KEY COMMAND)
将COMMAND绑定到全局的KEY上。COMMAND通常是一个命名交互式可调用函数的符号。
因此,您必须使用一个可交互调用的函数:
(global-set-key (kbd "<f6>") (lambda() (interactive)(find-file "~/.emacs")))

个人而言,我更喜欢使用Emacs寄存器来存储我经常使用的文件。我会将“~/.emacs”存储在一个寄存器中:

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

并使用 C-x r j e 打开它。


5
对于/.emacs(或在我的情况下是/.emacs.d/init.el),您可以使用变量user-init-file,它始终是加载的任何用户配置文件。 (find-file (or user-init-file "")) - jpkotta
3
非常感谢,Oleg。寄存器真的很方便!你甚至可以使用大小写字母,例如:(set-register ?x (cons 'file "~/.xinitrc"))(set-register ?X (cons 'file "~/.Xresources")) - Emanuel Berg

6

书签是一个非常好的解决方案,它与emacs捆绑在一起。这样,如果你想查看要打开的文件列表,你可以轻松浏览它们。还有BookmarkPlus提供了各种选项。

M-x list-bookmarks


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接