web-dev-qa-db-ja.com

ターミナルのオートコンプリートが正しく機能しません

ヒット後にapt-gのようなコマンドの入力を開始した場合 tab、シェルはapt-getへのコマンドを完了しますが、installなどのコマンドの2番目の部分で、instaなどの文字を入力すると、 tabinstallには完成しません。

別の例:Sudo hittingと入力した後 tab 何も完了しません。例:Sudo apt-ge [tab]と何もない。

私はミニiso(40MBネットワークインストーラー)を使用して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の許可も確認しました。-rw-r--r--です。

また、.bashrcを使用して変更後のsource .bashrcを取得して、新しい環境に変更を適用しますが、効果はありません。

xfce4-terminalを使用しているので、bashではなく端末であると考えました。

しかし、編集:

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

そして変更:

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>

に:

<property name="&lt;Super&gt;Tab" type="string" value="empty"/>

違いもありません。

55
Ravexina

bash-completionは、特定のコマンドのカスタマイズされた完了を可能にするbashスクリプトのセットです。

これは、ファイルとディレクトリだけでなく、たとえばコマンド用。したがって、コマンドの一部を入力し、 Tab コマンドの自動補完を取得します。

Installation

ステップ1: bash-completionをインストールする

$ Sudo apt-get install bash-completion

また、次のコマンドで再インストールすると機能する場合があります。

$ Sudo apt-get install --reinstall bash-completion

ステップ2:.bashrcファイルでbash-completionを有効にします

gedit ~/.bashrcを開き、これらのコンテンツが存在しない場合は、それらをコンテンツの最後に追加して保存します。

# enable bash completion in interactive shells
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

重要:変更後、~/.bashrcsource ~/.bashrcでソースするか、ターミナルを再度開く必要があります。今すぐ修正する必要があります。

82
αғsнιη

Xfceの下で端末タブが機能しない場合は、

解決策は次のとおりです。

  1. Application Menu> Settings> Window Managerを開きます。
  2. Keyboardタブをクリックします。
  3. Switch window for same application設定をクリアします。

Window Manager screenshot how to clear switch window for same application

私は解決策を見つけました ここ

26
itsho

また、オートコンプリートをサポートしないシェルを使用することもできます(例:Bourne Shell | SH)。 BASHを自動完了させる場合は、代わりにコマンドでBASH(Bourne Again Shell)と言うシェルを切り替える必要があります

chsh -s /bin/bash

ソース: buntu Wiki-シェルの変更

3
Michael Lowden

私の場合、スクリプト./myScript.shを実行しようとしていたので、./my[tab]と入力しても自動補完されません。

ファイルに実行権限を追加する必要があり、自動補完が機能しました。

1
Hezi