Используя ^W
(unix-word-rubout), я могу легко удалить одно «слово» из текущей команды в моей оболочке bash.
Однако при работе с аргументами в кавычках, которые содержат пробелы (или аргументы без кавычек, содержащие пробелы с обратной косой чертой), это работает не очень хорошо, так как удаляет только одно слово, а не весь аргумент.
Поэтому я ищу способ удалить целый аргумент.
Пример (курсор всегда в конце):
$ foo --bar "foo bar" meow
[black magic]
$ foo --bar "foo bar"
[black magic]
$ foo --bar
[black magic]
$ foo
Ответы:
Bash имеет команды readline, которые не связаны по умолчанию. Вы можете найти их по ссылке: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands
Команда, которую вы ищете, называется "shell-backward-kill-word". Вы должны сначала выбрать ярлык. Давайте использовать Crtl + p, так как это «предыдущая команда» - то же самое, что и стрелка вверх.
источник