web-dev-qa-db-fra.com

Appuyer sur esc dans une fenêtre de terminal

Dans un terminal (que ce soit UXTerm, Mate Terminal ou un terminal non basé sur un système X/window (ne sachant pas s'il porte un nom officiel) comme vous le faites en appuyant sur Ctrl+Alt+F1), si vous appuyez sur la Up flèche, vous pouvez parcourir l'historique des commandes précédemment exécutées.

Si vous décidez ensuite d’exécuter quelque chose de complètement différent, vous devez appuyer sur Ctrl+U pour effacer la ligne, comme mentionné ici . Dans l'invite de commande MS-DOS ou Windows, il suffit d'appuyer sur Esc.

Y a-t-il une raison pour laquelle le Esc la clé n'est pas définie par défaut dans Ubuntu Terminals pour effectuer la même action que Ctrl+U? Existe-t-il un moyen d'activer une telle fonctionnalité? Je veux vraiment ne pas avoir à me souvenir d'une touche de raccourci différente simplement parce que je tape dans un système d'exploitation différent.

(Je crois que ma question n'est pas une copie de celle à laquelle j'ai lié la réponse, parce que celle-ci demande la touche de raccourci équivalente dans Ubuntu, et je demande un moyen d'utiliser Esc ou pour une raison pour laquelle ce serait une mauvaise idée de le configurer de cette façon.)

3
Keith Hall

Vous pouvez lier ESC à la fonction Readline unix-line-discard:

bind '"\e": unix-line-discard'

Pour rendre la modification permanente, ajoutez la commande à ~/.xinputrc:

printf "bind '\"\\\e\": unix-line-discard'\n" >>~/.xinputrc

Et source ~/.xinputrc dans ~/.bashrc:

printf 'source ~/.xinputrc\n' >>~/.bashrc

Pour charger la modification également dans le shell actuel, source ~/.xinputrc:

source ~/.xinputrc

Il s’agit d’une fonctionnalité Bash, elle fonctionnera donc sur n’importe quel terminal, à moins que le terminal détourne ESC touche elle-même, par exemple si ESC fait partie d'une frappe de touche spécifique au terminal, auquel cas vous devez désactiver la frappe incriminée dans le terminal.

Voir aussi help bind et bind -P pour obtenir une liste des fonctions Readline disponibles et des touches/frappes auxquelles elles sont actuellement liées.

3
kos

Le seul moyen que je connaisse est de montrer s'il existe un moyen de changer le lien des touches. Peut-être existe-t-il un paramètre dans le programme de terminal que vous utilisez.

0
JOnathanJOnes