删除当前 bash 命令行中的整个参数

Thi*_*ter 14 bash readline inputrc

使用^W(unix-word-rubout) 我可以轻松地从 bash shell 的当前命令中删除单个“单词”。

但是,当处理包含空格的引用参数(或包含反斜杠转义空格的未引用参数)时,这不会很好地工作,因为它只删除一个单词而不是整个参数。

所以我正在寻找一种删除整个论点的方法。

示例(光标总是在最后):

$ foo --bar "foo bar" meow
[black magic]
$ foo --bar "foo bar"
[black magic]
$ foo --bar
[black magic]
$ foo
Run Code Online (Sandbox Code Playgroud)

Nyk*_*kin 15

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'
Run Code Online (Sandbox Code Playgroud)