在 Mac OS X 中更改 Emacs 绑定

在 Mac OS X 中更改 Emacs 绑定

我正在尝试重置“Cx Cc”的绑定。具体来说,我想将其重新绑定到一个函数,该函数询问我是否真的要退出(我只是手指太笨了)。我以前在 Linux 下做过这个,没有问题。在 Mac OS X 下,当我评估表达式时

(global-unset-key “\C-x\C-c”)

我得到:

eval-buffer:作为变量的符号值为空:“C-xC-c”

那么,为什么它是无效的?该命令确实退出了 Emacs,所以它不可能是void。我肯定没有正确地引用“Cx Cc”。但正确的方法是什么?

global-set-key当我将命令序列绑定到新函数时遇到了同样的问题。

我正在使用 MacPorts 的 GNU Emacs 23.0.0 和 Mac OS X 10.5(Leopard)。

答案1

不知何故,您正在使用 smartquotes。

使用

(global-unset-key "\C-x\C-c")  ;; use this

代替

(global-unset-key “\C-x\C-c”)  ;; Not this one!

答案2

Emacs 有一个针对您要求的配置,它不需要触及 Cx Cc 绑定。

只需将以下之一添加到您的配置中:

(setq confirm-kill-emacs 'y-or-n-p)

(setq confirm-kill-emacs 'yes-or-no-p)

第一个会要求您输入单个字符 y/n 进行确认,而第二个会要求您输入完整答案是/否。

答案3

这是一个开始,这是一个有点相关的页面http://www.delorie.com/gnu/docs/emacs/emacs_496.html,但看起来你想要的是重新定义绑定,而不是删除它。或者只是始终有一个修改过的文件,这样它会在退出前询问(你可以在 .emacs 或 ~/.emacs.d/init.el 中自动执行该操作)

http://www.delorie.com/gnu/docs/emacs/emacs_502.html

相关内容