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


56

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

別の例:sudo打った後、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"/>

違いもありません。

回答:


83

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

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

設置

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

$ sudo apt-get install bash-completion

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

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

ステップ2:.bashrcファイルでbash補完を有効にする

開いて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

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


1
〜/ .bashrcファイルに上記のコードブロックを追加するとうまくいったことを確認したいと思います。コメントを1つだけ。本当に動作させるためにログアウトして再度ログインする必要はありません(作業を終了したくない場合があります)、単に実行することができますsource ~/.bashrc
nullgeppetto

ターミナルを機能させるには、ターミナルを再度開く必要がありました!
ジルベルトアルビーノ

2
完了すると突然動作しなくなりました。上記の手順では問題は解決しません。問題のトラブルシューティング方法に関するアイデアはありますか?ubuntu 16.04
Gudlaugur Egilsson

1
ステップ2でそれを行います。またはテンプレートを入手してください/etc/skel/.bashrc
ヘンディイラワン

1
@SergioIvanuzzoは、あなたが直面している問題がわからない場合、このunix.stackexchange.com/q/219342/72456を参照してください。
αғsнιη

27

ケースが端末タブで機能していない場合Xfce

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

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

同じアプリケーションの切り替えウィンドウをクリアする方法を示すウィンドウマネージャーのスクリーンショット

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


受け入れられたオーナを試してみましたが、すべてがすでに整っていました。これは確かに私にとっての解決策でした。
user1226868

同上。素晴らしいヒント。
cerebrou

どうもありがとう、私はこれに本当に心を失っていました。
ダスティン

2
それでも2018
。– clifgray

おかげで私のために働いた
MMH

3

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

chsh -s /bin/bash

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


1

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.