如何讓emacs一按ESC就退出迷你緩衝區?

如何讓emacs一按ESC就退出迷你緩衝區?

我經常按錯誤的按鍵組合並打開一些不起眼的迷你緩衝區模式。我必須按 ESC 三次(我認為),這很煩人。如何讓 emacs 只需按一下 ESC 就退出迷你緩衝區?

答案1

感謝您的所有想法。看起來這應該可以解決問題:

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

它只適用於 isearch。似乎我必須為每個函數(smex、ibuffer 以及所有其他使用迷你緩衝區的函數)重新綁定它。

答案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))

由於這對每個迷你緩衝區使用本地鍵映射,因此您不必為每個命令的鍵映射重新綁定它 - 本地映射通常會優先於迷你緩衝區命令正在執行的任何操作。

相關內容