よりインテリジェントなタブ補完を備えたシェルバージョンはありますか?
入力できるようにしたい
cd foo-<TAB>
次に、可能な補完と、それらの1つを選択するために入力できる番号が表示されます。
cd foo-<TAB>
(1) foo-bar1 (2) foo-bar2 (3) foo-bad
したがって、<TAB>
の後に3
と入力すると、foo-bad
に移動します。または、数字を入力する代わりに矢印キーを使用することもできます。
Bashでmenu-complete
を有効にすると、Tabキーを押すたびにコマンドラインのエントリをステップスルーできます。これは本当にあなたが探しているものではありません。試してみたい場合は、コマンドプロンプトでこれを実行します。
bind '"\C-i": menu-complete'
それを持続させるには、これを~/.inputrc
ファイルに追加します。
"\C-i": menu-complete
Zshには、矢印キーを使用してエントリを選択できる機能があります。これ(または別のバリエーション)を~/.zshrc
ファイルに追加します。
zstyle ':completion:*' menu select=0
詳細については、man zshcompsys
を参照し、「select =」(menu
「標準スタイル」のセクションにあります)を検索してください。
それ以外の場合、Bashでは、select
コマンドに基づいて何かを実行する関数を作成する(または独自の完了関数を作成する)ことができます。これは非常に単純です。
$ select a in x y z; do cd $a; done
1) x
2) y
3) z
#?
あなたはそれがあなたが望むことをするようにするためにそれをたくさん肉付けしなければならないでしょう。
すでに通常の完了を使用していますか?試してみてください
complete -d cd pushd rmdir
シェルで、必要なものに十分近いかどうかを確認します。
Bashよりも完成度の高いzshを試すこともできます。