我是 lisp 的血腥初学者,所以请多多包涵。
我认为最好的精益方法是潜入。因为我正在设置我的 Emacs 环境,所以我将编辑我的 init.el
通常,我想添加一个热键以快速找到它以进行编辑,因为在接下来的几周中我会经常需要它。
我试过:
(global-set-key [f7] '(find-file "~/.emacs.d/init.el"))
无济于事,下次按时的答案是:
Wrong type argument: commandp, (find-file "~/.emacs.d/init.el")
我还尝试将它放入一个自己的函数中,模仿一个工作热键(用于 deft
(global-set-key [f8] 'deft)
):(defun sz-init-el ()
(interactive)
(find-file "~/.emacs.d/init.el"))
(global-set-key [f7] 'sz-init-el)
那行得通。所以我尝试添加
(interactive)
我的第一次审判:(global-set-key [f7] '((interactive) (find-file "~/.emacs.d/init.el")))
但这行不通(再次:
Wrong type argument: commandp, ...
)。那么,有没有办法在不先定义函数/命令的情况下设置全局键绑定(bind)?还是我必须通过
defun
車輛改道?感谢您的帮助和解答!
最佳答案
您需要使用 lambda(又名匿名函数):
(global-set-key [f7] (lambda () (interactive) (find-file user-init-file)))
此外,使用变量
user-init-file
优于硬编码名称。
关于emacs - 用于编辑 init.el/.emacs 的热键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816304/