web-dev-qa-db-ja.com

lsの端末オートコンプリートはディレクトリに移動しません

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ファイルには他に何もありません。

3
efremdan1

壊れたファイルと機能するものをクロスチェックする必要があるかもしれません。

必要なファイル/ディレクトリは次のとおりです。

/etc/bash_completion/usr/share/bash-completionおよび/etc/bash_completion.d

犯人が見つかったら、ファイルを調整する/不要なファイルを削除して修正します。

2
Ziazis