En utilisant ^W
(unix-word-rubout), je peux facilement supprimer un seul "mot" de la commande actuelle dans mon shell bash.
Cependant, lorsque vous traitez des arguments entre guillemets contenant des espaces (ou des arguments sans guillemets contenant des espaces avec barre oblique inversée), cela ne fonctionne pas bien car il supprime uniquement un mot et non l'argument entier.
Je cherche donc un moyen de supprimer tout un argument.
Exemple (le curseur est toujours à la fin):
$ foo --bar "foo bar" meow
[black magic]
$ foo --bar "foo bar"
[black magic]
$ foo --bar
[black magic]
$ foo
Réponses:
Bash a des commandes readline qui ne sont pas liées par défaut. Vous pouvez les trouver à la référence: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands
La commande que vous recherchez s'appelle "shell-backward-kill-word". Vous devez d'abord sélectionner un raccourci. Utilisons Crtl + p, car c'est la "commande précédente" - identique à la flèche vers le haut.
la source