(unix-word-rubout)を使用すると、^W
bashシェルの現在のコマンドから単一の「単語」を簡単に削除できます。
ただし、このアプローチは、空白を含む引用符付き引数(またはバックスラッシュでエスケープされた空白を含む引用符付き引数)を処理すると正しく機能しません。引数全体ではなく単語だけを削除するからです。
したがって、パラメータ全体を削除する方法を探しています。
はい(カーソルは常に最後にあります):
$ foo --bar "foo bar" meow
[black magic]
$ foo --bar "foo bar"
[black magic]
$ foo --bar
[black magic]
$ foo
ベストアンサー1
Bashにはデフォルトでバインドされていないreadlineコマンドがあります。次の参照で見つけることができます。http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands
これ注文するあなたが探しているのはですshell-backward-kill-word
。まずショートカットを選択する必要があります。Ctrlp上矢印のような「前のコマンド」なので使います。
bind '"\C-p": shell-backward-kill-word'