BASHのタブの完成は最初の一致を満たすのですか?

BASHのタブの完成は最初の一致を満たすのですか?

WindowsコマンドプロンプトのようにTabキーを押したときにBASHに最初の一致を入力させる方法はありますか?

(まだ一致のリストが表示されますが、タブを押し続けると一致が循環します。)

つまり、ここでの目標は以下を満たすことです。どのマッチそしてただTABキーを十分に押すとWindowsと同じです。

答え1

ファイルに以下を追加します.inputrc(正確な場所はシステムによって異なります)。

"\C-i": menu-complete

これにより、TAB がメニュー完了にマップされ、自動的に最初の一致が完了します。

show-all-if-ambiguous次に、TABを最初に押したときに可能な完成リストを表示することを追加(またはコメント解除)します。

たとえば、(おそらく).inputrcファイルから:

# On RHEL 8.3 - $HOME/.inputrc
set show-all-if-ambiguous on
"\C-i": menu-complete

または、次のようにしてセッションごとにメニュー補完を設定できます(編集は不要.inputrc)。

bind '"\C-i" menu-complete'

答え2

これがbashで動作するようにする方法はわかりませんが、zshのデフォルト設定は正確に欲しいものです。確認するああ、そして扱いにくい

zshはbashの機能のほとんどを備えており、TabやEnterだけでナビゲートできる機能など、いくつかの追加機能も含まれています!

ほとんどのLinuxディストリビューションにはzshインストール用のパッケージが付属しています。

関連情報