オートコンプリートは常に現在のディレクトリのファイルを提案します。

オートコンプリートは常に現在のディレクトリのファイルを提案します。

_longopt組み込みの完成機能(たとえば)を使用するコマンドに対してオートコンプリートを使用する場合、mkdirシェルは必要な提案に加えて常に現在のディレクトリの内容を提案します。

たとえば、私が入力した場合

mkdir ~/somedir

applications次に Tab を 2 回押します。 Bashの提案:(現在のディレクトリにが含まれていると仮定desktop

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

somedir_a通常の動作を復元し、bashが他のsomedir_bファイル/ディレクトリのみを提案して提案しないようにするにはどうすればよいですか?

バッシュバージョン:GNU bash, version 5.0.11(1)-release (x86_64-redhat-linux-gnu)
バッシュ完成:2.8

答え1

nullglobこの動作は、.dllファイルに存在する可能性のあるシェルオプションが原因で発生する可能性があります.bashrc

その理由は、この動作を有効_longoptにする関数定義にバグがあるためです。_longopt

回避策は、このオプションを無効にするか、_longopt機能を直接上書きすることです。

同様の効果がここに記載されている。nullglobがタブの完成に影響するのはなぜですか?しかし、このオプションに問題があることを知らないと、この問題を見つけるのは難しいです。

編集:指摘したように@プラマルベリー、これは既知の問題そしてbash-completion。修正はリリースにありますが、2.9そのリリースはまだFedora(およびおそらく他のシステム)では利用できません。

関連情報