emacs - 用于编辑 init.el/.emacs 的热键

标签 emacs elisp

我是 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/

相关文章:

common-lisp - 如何在 lisp 中随机播放列表?

elisp - 转换十进制<->十六进制

elisp - 我在这里缺少 make-symbol 和 assq 什么?

c# - 由于 "make-local-hook",无法为 emacs 加载 C# 模式

Emacs:在交互式命令中激活标记的问题

emacs - 是否可以将文本从另一个应用程序推送到 Emacs 的当前缓冲区?

php - 如何启用多模式 emacs 来编写 PHP 而不会弄乱我的缩进?

emacs - 在 Emacs 中使用 su/sudo 打开文件

emacs - 如何检查 Emacs 下的功能(例如 server-running-p)是否可用?

emacs - 如何在 emacs 组织模式中包含纯文本文件