4
我正在完成一個需要像「one:two:three」這樣的參數的命令。Bash完成時沒有任何空格分隔的詞
用最簡單的術語來說,我想'''被處理就像空格字符是默認的。有沒有簡單的方法來做到這一點,我失蹤了?
我發現':'在COMP_WORDBREAKS中,但COMP_WORDBREAKS中的字符也被當作單詞處理。
因此,如果命令行是:
cmd one:tw[TAB]
COMP_CWORD將在3和COMP_WORDS [COMP_CWORD-1]將是 ':'
爲了進行比較,如果該命令行是:
cmd one tw[TAB]
COMP_CWORD將是2並且COMP_WORDS [COMP_CWORD-1]將是'one'
更糟糕的是,如果你打[TAB]後右 ':' 分隔符它的行爲大多喜歡一個空間:
cmd one:[TAB]
現在COMP_CWORD將是2和COMP_WORDS [COMP_CWORD-1]將是 '一'。
我可以很容易地從COMP_LINE自己解析命令行,但更好地找到一種方法在我的自定義完成中使':'像''一樣行事。可能?