奇妙な理由で、私のファイル名のオートコンプリート機能は通常とは異なります。次のファイル構造から./foobar/file.txt
削除するには、コマンドラインでファイル名をfile.txt
入力してオートコンプリートします。rm foob<TAB><TAB>
rm foobar/file.txt
ただし、最初のコマンドをクリックすると、コマンドはオートコンプリートされます<TAB>
(rm foobar
後にスペースを含めますfoobar
)。誤ってこの動作に変更した可能性はありますか?どうやって変更できますか?
答え1
/etc/bash_completion.d
私の経験によれば、これは通常、さまざまなパッケージをインストールしたときにインストールおよび更新されるファイルの1つの構成が正しく機能しないために発生します。私の提案は、すべてのファイルをそのディレクトリの外に移動して新しいシェルを起動し、動作が正常に戻ることを確認することです。その場合は、ファイルを一度に1つずつ(またはグループ)ディレクトリに戻して、どのファイルが問題を引き起こしているかを確認できます。範囲を絞った後は、ファイルをインストールするパッケージのバグを報告してください!
答え2
complete -p rm
現在実行中の作業を確認し、rm
bash機能が実際に目的の方法で機能していることを確認するために使用します。
完了が必要ない場合rm
(たとえば、このようなパラメータ)、-i
bash設定に次の行を追加するだけです。
complete -r rm; complete -o default rm
(現在の完成を削除し、基本的な完成を設定)