web-dev-qa-db-fra.com

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

Considérez l'invite 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 avec 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?

91
Adam Matan

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

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

145
user128285

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

Par défaut, votre Shell utilise généralement le mode d’édition emacs.

  • En mode emacs, la suppression jusqu’à la fin de la ligne peut être effectuée à l’aide de la commande ctrl-k.

  • Si, par contre, vous utilisez le mode d’édition vi dans votre commande Shell, vous pouvez obtenir le même résultat en tapant Esc(qui vous placera en mode commande) suivi de d-$(si vous souhaitez supprimer toute la ligne, entrez dd).

Si vous ne savez pas quel mode d'édition vous utilisez actuellement dans votre shell, entrez la commande set -o à partir de la ligne de commande et vous pourrez déterminer le mode d'édition que vous utilisez actuellement:

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

Pour changer de mode d’édition en ligne de commande, tapez simplement:

set -o vi

ou

set -o emacs
46
Kevin Bowen

Si vous ne connaissez que l'un de Zsh et de Bash, voici les raccourcis clavier dont vous pourriez avoir besoin:

bash

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
Sridhar Sarnobat