ls
ディレクトリ名をタブでオートコンプリートしようとすると、オートコンプリートで次のサブディレクトリを入力できるスラッシュが表示されません。代わりに、スペースが与えられるため、進む前にバックスペースとスラッシュを追加する必要があります。たとえば、構造がdir1/dir2/dir3/test.txt
のディレクトリのルートにいて、ls di [tab]
と入力すると、ls dir1
が必要なときにls dir1/
を取得します。
オートコンプリートで使用する他のコマンドの場合、cd
など、これは発生しません。ただし、他の人にも発生します。たとえば、VMDという視覚化プログラムを使用し、VMDでスクリプトを実行する場合は、vmd -e dir/scriptname.tcl
と入力します。スクリプトにつながるディレクトリをオートコンプリートしようとすると、ls
と同じ問題が発生します。
Bash-completionパッケージが正しくインストールされています。 complete -p | grep " ls"
と入力すると、complete -F _longopt ls
が表示されます
complete -d ls
と入力すると、セッションの残りの部分でオートコンプリートが正しく機能します。ただし、.bashrc
ファイルにそれを追加する必要があるのは奇妙なことです。この問題は、私の特定のUbuntuワークステーションでのみ発生し、他のワークステーションでは発生しません。これを引き起こしている可能性のあるアイデアはありますか?
参考までに、私の.bashrc
ファイルには既に以下が含まれています:
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
Elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
オートコンプリートに関連する.bashrc
ファイルには他に何もありません。
壊れたファイルと機能するものをクロスチェックする必要があるかもしれません。
必要なファイル/ディレクトリは次のとおりです。
/etc/bash_completion
、/usr/share/bash-completion
および/etc/bash_completion.d
犯人が見つかったら、ファイルを調整する/不要なファイルを削除して修正します。