5 votes

Comment faire pour qu'emacs quitte le minibuffer avec une pression sur ESC ?

Il m'arrive souvent d'appuyer sur une mauvaise combinaison de touches et d'ouvrir un obscur mode minibuffer. Je dois appuyer sur ESC trois fois (je crois), ce qui est assez ennuyeux. Comment faire pour qu'emacs quitte le minibuffer avec une seule pression sur ESC ?

3voto

Fred Goodman Points 133

Merci pour toutes vos idées. Il semble que cela devrait faire l'affaire :

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

Ça ne fonctionne que pour isearch. Il me semble que je devrais le relier pour chaque fonction (smex, ibuffer, et toutes les autres qui utilisent le minibuffer).

2voto

Drew Points 2004

Je crois que ergoemacs utilise le ESC comme vous le souhaitez. Il modifie également de nombreuses autres combinaisons de touches Emacs - mais probablement d'une manière qui correspond à votre désir d'"éviter les longues pressions sur les touches Emacs".

[ Attention : Je ne suis pas un expert d'ergoemacs, et je ne pas recommande d'utiliser ESC de cette façon. ESC a un rôle particulier dans Emacs par rapport à la fonction Meta et les claviers, et le traiter autrement revient à s'attirer des ennuis tôt ou tard. (De même, C-g est fondamentale pour Emacs, et est même codée en dur dans certains cas, elle n'est donc pas remplaçable à 100% par une autre clé)].

1voto

sebix Points 4115

J'utilise généralement la combinaison de touches suivante : Ctrl - X (entrer en mode commande) K (Kill), puis Enter .

Cela devrait tuer le mini-buffer actuel.

0voto

Binnette Points 81

Je veux faire une chose similaire : appuyer sur ESC pour annuler la fonction save-buffers-kill-terminal pendant l'invite "Save file".

J'ai essayé de relier ESC dans de nombreux keymaps de minibuffer comme mentionné dans cette Q&R . Cependant, je ne peux toujours pas annuler l'invite "Enregistrer le fichier" par ESC.

Après avoir creusé quelques codes sources elisp, j'ai trouvé que query-replace-map est le keymap-parent de map-y-or-n-p, qui est utilisé par save-buffers-kill-terminal. Donc ma solution finale est :

(define-key query-replace-map (kbd "<escape>") 'keyboard-quit)

Notez qu'il désactive tous les raccourcis avec la touche méta.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X