^W
(unix-Word-rubout)を使用して、bashシェルの現在のコマンドから単一の「Word」を簡単に削除できます。
ただし、スペースを含む引用符付きの引数(またはバックスラッシュでエスケープされたスペースを含む引用符なしの引数)を処理する場合、引数全体ではなく1つのWordしか削除されないため、うまく機能しません。
だから私は引数全体を削除する方法を探しています。
例(カーソルは常に最後にあります):
$ 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
あなたが探している command はShell-backward-kill-Word
と呼ばれます。最初にショートカットを選択する必要があります。使ってみよう Ctrlp、「前のコマンド」なので、上矢印と同じです。
bind '"\C-p": Shell-backward-kill-Word'