Dans la ligne de commande Windows (powershell et cmd), lorsque vous appuyez sur la Esctouche sur une ligne, tout ce que vous avez tapé à l'invite est supprimé.
J'ai trouvé qu'en appuyant sur la Esc
touche à l'invite bash ne fait rien. Appuyez sur Esc
puis backspace
supprimez un mot, mais cela doit être fait pour chaque mot.
J'apprends Bash de manière incrémentielle et saisis parfois quelque chose de stupide au milieu de la ligne et je pense qu'il vaut mieux taper à partir de zéro. Pour ce faire, appuyer sur backspace
est le seul moyen que j'ai trouvé jusqu'à présent.
Que faire?
Je connais la clear
commande et le Ctrl-Lraccourci, mais je ne parle pas d'effacer tout le terminal. Juste la ligne.
bash
command-line
Animesh
la source
la source
Réponses:
Vous voulez
kill-whole-line
, mais ce n'est pas lié par défaut dans bash.backward-kill-line
( CtrlX Backspace) etunix-line-discard
( CtrlU) effacent tous les deux du point actuel au début de la ligne, il suffit donc d'aller à la fin de la ligne et d'utiliser l'un ou l'autre.la source
bind -P
. Je supposeCtrl-U
queCtrl-Y
c'est la seule option.Vous pouvez utiliser Ctrl+ Cpour abandonner tout ce que vous tapez et obtenir une nouvelle ligne de commande vide, voir CTRL + C est-il incorrect à utiliser pour revenir à la ligne de commande? .
la source
Ctrl+ava au début de la ligne et Ctrl+ksupprime à la fin de la ligne
la source
^U
abord, dans la plupart des implémentations du mode d'édition de ligne de commande Emacs, il supprime déjà la ligne complète. Dans ceux où il ne supprime que la gauche du curseur (GNU readline, par exemple), appuyez^K
ensuite sur.Pour développer un peu la réponse d'Ignacio Vazquez-Abrams, vous pouvez obtenir (presque) un comportement semblable à Windows à partir de la Escclé dans bash en liant le
kill-whole-line
à Escavec la commande suivanteSi vous ajoutez la ligne à votre
~/.inputrc
fichier, la liaison persistera entre les sessions.Notez, cependant, que ce n'est pas très standard, car bash utilise en fait la Escclé comme une autre clé de modification (comme un Alt ou Ctrl non persistant). Si vous regardez la liste des raccourcis clavier existants (avec
bind -P
), vous verrez probablement plusieurs commandes liées à des combinaisons de touches commençant par "\ e" (par exemplequi configure la combinaison Esc+ Bpour ramener le curseur au début du mot le plus récent - plutôt comme Ctrl+ ←, sauf que vous devez continuer à relâcher Esc(ainsi que B, bien sûr) si vous voulez le faire plus d'une fois de suite ).
Et cela explique pourquoi j'ai dit que le comportement que vous obtenez est presque semblable à celui de Windows: lorsque vous appuyez sur Esc, bash vérifie si vous l'utilisez en combinaison avec une autre touche; Donc, si vous le liez à
kill-whole-line
, il y a un peu de retard entre appuyer (ou plutôt relâcher) Escet effacer la ligne pour vous.Cependant, si vous ne vous souciez pas de tout cela et que vous préférez vivre avec le retard plutôt que de vous recycler à une frappe différente, cela peut être fait.
(Remarque: une grande partie des informations que j'ai obtenues ici suite à la lecture - et en suivant les liens - de cette réponse .)
la source
[19;
un code d'échappement d'apparence similaire. En fin de compte, j'ai trouvé que le mappage (c.-"\e\e"
àkill-whole-line
-d. Appuyer deux fois sur Esc pour effacer la ligne) était un bon compromis.Esc
plusieurs fois de toute façon, donc je pourrais essayer. Je l'ai actuellement lié àCtrl
+Del
mais je ne m'en souviens pas.