zshのようなbashオートコンプリート


28

私はbashを使用していますが、bashのように見えるものではなく、入力するまで何も選択しないbashのように、zshスタイルのオートコンプリート(タブを押して可能性をタブで移動します)をしたいです曖昧さをなくすためにもう少し。bashでzshタイプの動作を取得するにはどうすればよいですか?

ソリューションを検索すると、他の質問に対する多くの回答が得られたので、ここで簡単な回答(つまり、に貼り付けるもの)を取得できることを望んでいます.bashrc

(そして、明白な質問に答えるために、私はここでbashを使用する必要があります。私はチームに参加したばかりで、bashをセットアップして環境を使いやすくするためのものです。 zshでの方法ですが、今のところ、bashを使用して、インタラクティブな使用中にzshのように振る舞うようにすれば簡単です)

回答:


22

私が使う

bind 'TAB:menu-complete'

それを達成するために


11
これを.bashrcに追加すると、Tabはターミナルにリストするのではなく、可能なオプションを循環します。両方の動作を取得することは可能ですか?
アントニオスHadjigeorgalis 14

以下のためにShitf-Tab完全な後方、使用しますbind '"\e[Z":menu-complete-backward'
Ainar-G

24

最初の補完とリストを取得するには、bashrcに以下を追加できます

bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'

show-all-if-ambiguous:これは、補完機能のデフォルトの動作を変更します。'on'に設定されている場合、複数の補完候補がある単語は、ベルを鳴らすのではなく、一致をすぐにリストします。デフォルト値は「off」です。

詳細については、Bashのマニュアルを参照してください。

編集:

これは、bshをzsh thoとまったく同じように動作させません。Zshは、次のあいまいな一致まで完了します。Bashはすべての一致を循環します。

例えば

$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile

  • zsh:〜/ .bashまで完了し、一致するリストを表示します<tab>。これにより、_を追加して再度ヒットできます。
  • bash:〜/ .ba *のマッチをすべて循環します。

8
矢印キーの使用と、zshのオートコンプリートの視覚的な表示が好きでした。bashでこれらの動作を取得する方法はありますか?私はより良いサーバーとの互換性のためにスイッチバック
CESCO

2

フォローアップingkebil答えはそのプットのためのもの、のbindsetinputrc

$ tail -n 4 /etc/inputrc
# zsh like completion:
# /superuser/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete

.bashrc清潔に保つのが好きです。

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