自動補全始終建議目前目錄中的文件

自動補全始終建議目前目錄中的文件

當對任何使用內建_longopt完成功能的命令(例如mkdir)使用自動完成功能時,除了所需的建議之外,shell 還始終建議當前目錄的內容。

例如,如果我輸入

mkdir ~/somedir

然後按 Tab 鍵兩次 Bash 建議:(假設類型目前目錄包含applicationsdesktop等)

applications/   desktop/     documents/
...
somedir_a/      somedir_b/

如何恢復正常行為並使 bash 僅建議而不建議somedir_a其他somedir_b文件/目錄?

Bash 版本:GNU bash, version 5.0.11(1)-release (x86_64-redhat-linux-gnu)
Bash 補全:2.8

答案1

此行為可能是由 shell 選項引起的nullglob,例如,該選項可能在您的.bashrc.

原因是該_longopt函數的定義有錯誤,導致此行為_longopt開啟。

解決方案是停用此選項或自行重寫該_longopt函數。

這裡也描述了類似的效果:為什麼 nullglob 會影響製表符補全?,儘管這個問題很難找到,除非你知道這個選項有問題。

編輯:正如所指出的@fra-桑, 這是一個已知問題bash-completion。該修復已在 版本中發布2.9,但該版本尚未在 Fedora(也許還有其他系統)上發布。

相關內容