如何让 emacs 按一次 ESC 退出迷你缓冲区?

如何让 emacs 按一次 ESC 退出迷你缓冲区?

我经常按错组合键并打开一些晦涩难懂的迷你缓冲区模式。我不得不按三次 ESC(我认为),这很烦人。如何让 emacs 只需按一次 ESC 即可退出迷你缓冲区?

答案1

感谢您的所有想法。看来这应该可以解决问题:

(define-key minibuffer-local-map (kbd "ESC") 'keyboard-escape-quit)

它只适用于 isearch。似乎我必须为每个函数(smex、ibuffer 和所有其他使用 minibuffer 的函数)重新绑定它。

答案2

我相信埃格马克斯按您想要的方式使用ESC按键。它还会更改许多其他 Emacs 按键绑定 - 但可能以符合您“避免长时间按下 Emacsy 按键”的愿望的方式。

[警告: 我不是 ergoemacs 方面的专家,但我确实不是建议使用ESC这种方式。ESC在 Emacs 中,修饰符和键映射具有特殊作用Meta,否则迟早会自找麻烦。(同样,C-g是 Emacs 的基础,在某些情况下甚至是硬编码的,因此不能 100% 被另一个键替换。)]

答案3

我通常使用以下组合键:-(Ctrl进入X命令模式)K(Kill),然后Enter

这应该会终止当前的小缓冲区。

答案4

您可能想要的是minibuffer-setup-hook在每个迷你缓冲区的本地地图中绑定 ESC。

(add-hook 'minibuffer-setup-hook (lambda ()
    (local-set-key (kbd "ESC") 'abort-minibuffers))

由于这使用了每个迷你缓冲区的本地键映射,因此您不必为每个命令的键映射重新绑定它 - 本地映射通常会优先于该迷你缓冲区命令正在执行的操作。

相关内容