我正在尝试重置“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 中自动执行该操作)