現在のディレクトリが空の場合は、サブディレクトリを入力してください。

現在のディレクトリが空の場合は、サブディレクトリを入力してください。

bashのGUIファイルマネージャを放棄するのを防ぐ1つの理由は、Bashが空のディレクトリ内の一意のサブディレクトリに対してタブ補完機能を実行しないことです。

$ ls
..       // is not displayed, when cmd is simply ls
.        // but they still exist
subdir/

cd <tab> 現在のディレクトリに他に何もないので拡張できるようにしたいのcd subdir/ですが、bashはこのコマンドを完了するために入力の最初の文字が必要です。

ユースケース 入れ子になったディレクトリ(特に不明なディレクトリ)を持つプロジェクトを閲覧するのは痛いです。 /src/main/com/application/module/package は次のように翻訳されます。 s<tab><tab><tab>m<tab><tab><tab>c<tab><tab><tab>a<tab>...たとえば、thunarの場合、最初のディレクトリが事前に選択されているので、Enterを数回押すことができます。

これは、現在のディレクトリと親ディレクトリの識別子によるものだと思います。 Bashでこの動作を構築する正しい方法は何ですか?

//編集_2:

Debian 10 で xfce4-terminal を使用しています

ベストアンサー1

私の質問についての迅速なフィードバックを送ってくれた皆さんに感謝します。プログラム可能なシェルスクリプトのシェルスクリプトを無効にすることで問題を解決しました。

これは、Debianがプリインストールされているパッケージが原因で発生します。この問題を解決する手順は次のとおりです。

  1. 私のファイルに表示される次のコードのリスト.bashrc($ HOME / .bashrc、$ HOME / .profile、/ etc / bash.bashrc、および/ etc / profile)を削除します。
  2. apt remove bash-completion次のファイルを削除するパッケージを削除します。Debianパッケージ - ファイルリスト
  3. 編集した .bashrc/restart bash を取得します。
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.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  

とても感謝しています!

おすすめ記事