私はbashを使用していますが、bashが何をしているように見えるのではなく、zshスタイルのオートコンプリート(タブを押してタブに移動します)を使用したいと思います。明確にするためにもう少し。 bashでzshタイプの動作を取得するにはどうすればよいですか?
解決策を検索すると、他の質問に対する多くの回答が見つかりました。そのため、ここで簡単な回答(つまり、何に貼り付けるか.bashrc
)。
(そして明らかな質問に答えるために、私はここでbashを使用する必要があります。私はチームに参加したばかりであり、彼らはbashを設定して環境を扱いやすくするためにいくつかのことを行います。おそらく同じように動作することを最終的に確認できます。 zshでの方法ですが、今のところ、bashを使用して、インタラクティブな使用中にそれをzshのように振る舞えば、より簡単です。
私が使う
bind 'TAB:menu-complete'
それを達成するために
最初の完成とリストを取得するには、bashrcに以下を追加します
bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'
show-all-if-ambiguous:これは、補完関数のデフォルトの動作を変更します。 「オン」に設定した場合、複数の可能な補完がある単語は、ベルを鳴らすのではなく、一致がすぐにリストされます。デフォルト値は「オフ」です。
詳細は Bash Manual を参照してください。
編集:
これはbshをzshと同じように正確に動作させません。 Zshは次のあいまいなマッチまで完了します。 Bashはすべてのマッチを循環します。
例えば.
$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile
<tab>
再び。ingkebil の回答をフォローアップします。bind
とset
をinputrc
に入れる人のために:
$ tail -n 4 /etc/inputrc
# zsh like completion:
# https://superuser.com/questions/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete
私は.bashrc
掃除。