如何在Emacs中将ESC绑定到键盘退出命令?

23

通常情况下,keyboard-escape-quit 绑定在 EscEscEsc 上。是否可以将其重新绑定到单个 Esc 上?我从不将 Esc 用作前缀键。

我正在运行 Windows XP 上的 Emacs 23.0.60.1。

3个回答

40

重新阐述其他人的答案,我已经

(global-set-key (kbd "<escape>")      'keyboard-escape-quit)

在我的.emacs文件中,它在我WinXP上的emacs 22上运行。我也讨厌连续敲击3个ESC键;由于多年(Windows)习惯,我的手指自然地去按Esc键来跳出任何不愉快的事情。


4

虽然这种方法不一定适合你,但是当我遇到这个问题时,我自己学会了按Ctrl-g键,这也是默认绑定键盘-退出-退出的。对我来说,这样做的好处是让我的左手保持在靠近主键位置,并且保留了我的Esc前缀。

编辑:阅读链接页面后,它并没有完全绑定到相同的功能,在Windows上,Ctrl-g无法强制中断正在运行的命令,但是Ctrl-g可以覆盖我使用Esc Esc Esc的99% --- 用于中止我输入错误的命令。


我从不使用keyboard-escape-quit,我使用C-g。我不能说我会用到C-[,因为它只是模仿ESC ESC ESC的功能的另一部分。 - ashawley
5
我会尝试使用C-g以避免离开Home键位置,但Esc已经深入我脑海中作为“将我带回原来的位置”,所以我需要它。否则,我按下Esc->什么也不发生->我感到不高兴。 - Pavel Chuchuva

1
你可以这样做,但代价是破坏了 Esc 前缀键映射。实现此功能的代码如下: (global-set-key "" 'keyboard-escape-quit) 其中奇怪的字符是 escape(使用 ^Q esc 输入它)。 它将为您映射 esc,但其余的键映射都会消失。

你可以通过执行 (global-set-key (kbd "ESC") 'keyboard-escape-quit) 避免输入特殊字符,但事情并不像这么简单:至少在我的 Emacs(22.3.1 版本,Mac 平台,Carbon 版本 1.6.0),ESC 按键不能作为退出按键使用,而所有的 meta 快捷键(即使使用 Cmd 键)都会停止工作。 - Jouni K. Seppänen
是的,在Win32 Emacs 22.0.99上就是这种行为。 - jottos

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