現在のbashコマンドラインから引数全体を削除します。

現在のbashコマンドラインから引数全体を削除します。

(unix-word-rubout)を使用すると、^Wbashシェルの現在のコマンドから単一の「単語」を簡単に削除できます。

ただし、このアプローチは、空白を含む引用符付き引数(またはバックスラッシュでエスケープされた空白を含む引用符付き引数)を処理すると正しく機能しません。引数全体ではなく単語だけを削除するからです。

したがって、パラメータ全体を削除する方法を探しています。

はい(カーソルは常に最後にあります):

$ 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'

おすすめ記事