Linux

Bash選項卡完成在=字元後不起作用

  • March 2, 2020

我查看了很多 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% 的時間),那麼禁用它是可以的。

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