=文字の後は、Bashタブの完成は機能しません。

=文字の後は、Bashタブの完成は機能しません。

私は多くのbashタブの完成の質問を見ましたが、まだこの質問に対する答えを見つけることができませんでした。

私はLinuxシステム(GNU bash、バージョン4.2.46(2)-リリース(x86_64-redhat-linux-gnu))を使用しており、タブの完成は一般的にうまく機能します。

ただし、環境変数またはコマンドラインオプションでタブ補完機能を使用すると失敗します。例えば、

ls /v<TAB>-> ls /var/
export FOO=/v<TAB>-> export FOO=/v(ベル音)

Mac(GNU bash、バージョン5.0.16(1) - リリース(x86_64-apple-darwin18.7.0))でこれを行うと、環境変数の値のタブ補完が正しく機能します。

両方のコンピュータ$COMP_WORDBREAKSから"'><=;|&(:

誰か(これがどこから来たのかわかりません)が提案しました。

shopt -u progcomp

助けることができ、問題が解決します!ただし、Mac側ではそのオプションを選択解除する必要がなく、他の奇妙な副作用が発生する可能性があるという懸念があります。

設定がキャンセルされるのは正常ですか?この問題を解決するために私ができる他の方法はありますか?

答え1

shopt -u progcomp障害を負うプログラム可能な完成つまり、例えば、各プログラム完了のスクリプトを提供することが可能である。一致するファイルのみを完成させるか、*.tarコマンドラインが次に始まるtarなどの機能を提供できます。これらのスクリプトは通常ディストリビューションに付属していますが、Macの場合はそうではありません。

progcompまた、これらのスクリプトによって発生するバグやバグのある機能が実際に役立つよりも迷惑な場合(私にとっては約100%)、無効にしてもかまいません。

関連情報