Używając ^W
(unix-word-rubout) mogę łatwo usunąć pojedyncze „słowo” z bieżącego polecenia w mojej powłoce bash.
Jednak w przypadku argumentów cytowanych zawierających spacje (lub niecytowanych argumentów zawierających spacje z odwrotnym ukośnikiem) nie działa to dobrze, ponieważ usuwa tylko jedno słowo, a nie cały argument.
Więc szukam sposobu na usunięcie całego argumentu.
Przykład (kursor znajduje się zawsze na końcu):
$ foo --bar "foo bar" meow
[black magic]
$ foo --bar "foo bar"
[black magic]
$ foo --bar
[black magic]
$ foo
Odpowiedzi:
Bash ma polecenia readline, które nie są domyślnie powiązane. Można je znaleźć na stronie : http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands
Komenda szukasz nazywa
shell-backward-kill-word
. Najpierw musisz wybrać skrót. Użyjmy Ctrlp, ponieważ jest to „poprzednie polecenie” - to samo co strzałka w górę.źródło