Linux
Bash選項卡完成在=字元後不起作用
我查看了很多 bash 選項卡完成問題,但還沒有找到一個可以回答這個問題的問題。
我在一個 linux 系統上(GNU bash,版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)),通常選項卡完成工作得很好。
但是,當我對環境變數或命令行選項使用製表符完成時,它會失敗。例如,
ls /v<TAB>
->ls /var/
export FOO=/v<TAB>
->export FOO=/v
(響鈴)當我在我的 Mac(GNU bash,版本 5.0.16(1)-release (x86_64-apple-darwin18.7.0))上執行此操作時,環境變數值的選項卡完成工作正常。
在兩台機器上,
$COMP_WORDBREAKS
都是"'><=;|&(:
.有人(我不知道這是從哪裡來的)建議說
shopt -u progcomp
可能會有所幫助,它確實解決了問題!但是,我不需要取消設置 Mac 端的那個選項,我擔心它可能會導致其他奇怪的副作用。
取消設置是正常的嗎?我還能做些什麼來解決這個問題嗎?
shopt -u progcomp
禁用可程式完成,即可以提供例如每個程序完成的腳本。它們可能會提供諸如僅*.tar
在命令行以tar
.
progcomp
如果由這些腳本引起的錯誤和錯誤功能看起來比實際功能有用(對我來說,這大約是 100% 的時間),那麼禁用它是可以的。