Bash

刪除目前 bash 命令行中的整個參數

  • March 3, 2020

使用^W(unix-word-rubout) 我可以輕鬆地從我的 bash shell 中的目前命令中刪除一個“單詞”。

但是,在處理包含空格的引用參數(或包含反斜杠轉義空格的未引用參數)時,這並不能很好地工作,因為它只會刪除一個單詞而不是整個參數。

所以我正在尋找一種方法來刪除整個論點。

範例(游標始終位於末尾):

$ 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

您要查找的命令稱為shell-backward-kill-word. 您必須先選擇一個快捷方式。讓我們使用Ctrl``p,因為它是“上一個命令” - 與向上箭頭相同。

bind '"\C-p": shell-backward-kill-word'

引用自:https://unix.stackexchange.com/questions/71350