Question Bash: supprimer du curseur jusqu'à la fin de la ligne avec un raccourci clavier


Considérons l'invite de bash suivante, où ^ indique l'emplacement de l'invite:

$ git commit -am "[bug 123456] Do this and that with the bug"
                               ^

Supposons que je veuille commettre à nouveau le même bogue, avec un message de validation différent. Est-il possible de supprimer le texte de la position du curseur jusqu'à la fin de la ligne?


82
2018-03-17 08:28


origine




Réponses:


Utilisation Ctrl+K supprimer du curseur à la fin de la ligne.

Utilisation Ctrl+U supprimer du curseur au début de la ligne.


132
2018-03-17 08:37



Quelle est la combinaison de touches à mettre? - ShooShoSha
@ShooShoSha, essayez Shift + Insert - user128285


Cela dépend si vous utilisez vi (set -o vi) ou emacs (set -o emacs) le mode d’édition dans votre shell.

Par défaut, votre shell utilise généralement le mode d'édition emacs par défaut.

  • En mode emacs, la suppression à la fin de la ligne peut être effectuée en utilisant la commande ctrl-k.

  • Si, toutefois, vous utilisez le mode d'édition vi dans votre shell de commandes, vous pouvez obtenir le même résultat en tapant Esc(qui vous placera en mode commande) suivi de -$(si vous souhaitez supprimer la ligne entière, entrez dd).

Si vous n'êtes pas certain du mode de montage que vous utilisez actuellement dans votre shell, entrez la commande set -o à partir de la ligne de commande et vous serez en mesure de déterminer le mode d'édition que vous utilisez actuellement:

set -o
...snip...
emacs           on
...snip...
vi              off

Pour changer de mode de modification de la ligne de commande, tapez simplement:

set -o vi

ou

set -o emacs

45
2018-03-17 09:07



Si vous voulez un mnémonique, le K signifie tuer (la ligne à partir de la position du curseur). - Gregor Botero
En mode de commande vi, D fonctionne de la même manière que d$ - glenn jackman
+1 pour avoir écrit le droite répondre et expliquer que les coquillages peuvent le changer. - TC1
>> Merci Il semble que j'utilise vi, alors CTRL + K fait le tour. - Adam Matan Adam, alors vous êtes en mode emacs, pas vi. - catch22
Dans Kubuntu oneiric (konsole), Ctrl + K et ESC Shift + D fonctionnent tous les deux. ESC d supprime une partie de la ligne (peut-être jusqu'à un ';'). (En tapant $ après cela envoie juste le $ à la console.) J'ai essayé de trouver comment faire ça pendant un certain temps. Merci! - Joe


Si vous ne connaissez que Zsh et Bash, voici les raccourcis clavier dont vous avez besoin:

frapper

bind '"\C-k"':kill-line

zsh

bindkey "\C-k"      vi-kill-eol

Autres informations pertinentes

Pour obtenir une liste des raccourcis clavier:

# bash
bind -p

# zsh
bindkey

2
2017-09-25 20:54



Je suis confus. Pour Bash, ne devrait-il pas être "^k"  pour Control + K? - wjandrea
Désolé, c'est ma liaison personnelle. J'aurais mis la liaison par défaut mais n'était pas à l'aise avec la syntaxe bash. Depuis que vous avez mentionné ce que cela devrait être, j'ai pris votre parole et j'ai édité mon message. - Sridhar-Sarnobat
Ah d'accord. Je ne suis pas familier avec cela, mais juste vérifié et il devrait être "\C-k" - wjandrea