Como fazer o emacs sair do minibuffer pressionando ESC?

Como fazer o emacs sair do minibuffer pressionando ESC?

Costumo pressionar a combinação errada de teclas e abrir algum modo obscuro de minibuffer. Tenho que pressionar ESC três vezes (eu acho), o que é muito chato. Como faço para que o emacs saia do minibuffer com apenas um toque de ESC?

Responder1

Obrigado por todas as suas idéias. Parece que isso deve funcionar:

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

Só funcionou para isearch. Parece que eu teria que religá-lo para cada função (smex, ibuffer e todas as outras que usam o minibuffer).

Responder2

Acredito queergoemacsusa a ESCchave da maneira que você quiser. Ele também altera muitas outras combinações de teclas do Emacs - mas provavelmente de maneiras que concordam com o seu desejo de "evitar pressionamentos longos de teclas do emacsy".

[Embargo: Não sou especialista em ergoemacs, e simnãorecomendo usar ESCdessa forma. ESCtem um papel específico no Emacs em relação ao Metamodificador e aos mapas de teclado, e tratá-lo de outra forma é causar problemas mais cedo ou mais tarde. (Da mesma forma, C-gé fundamental para o Emacs e é até mesmo codificado em alguns casos, portanto não é 100% substituível por outra chave.)]

Responder3

Eu costumo usar a seguinte combinação de teclas: Ctrl- X(entrar no modo de comando) K(Matar), então Enter.

Isso deve eliminar o minibuffer atual.

Responder4

O que você provavelmente deseja é usar minibuffer-setup-hookpara vincular o ESC no mapa local de cada minibuffer.

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

Como isso usa o mapa de teclas local para cada minibuffer, você não precisa vinculá-lo novamente para o mapa de teclas de cada comando - o mapa local geralmente terá precedência sobre o que quer que o comando do minibuffer esteja fazendo.

informação relacionada