zsh補完をbash補完のように動作させるにはどうすればよいですか?


17

私は最近bashからzsh( "oh my zsh"を使用しています)に変換していますが、次の点に不満があります。

タブキーを押すと、最初のオートコンプリートが自動的に入力されます。タブを繰り返し押すことで、補完を循環させる必要があります。

これは、補完のリストが表示されるだけのbashとは異なります。すべての補完に同じ接頭辞が付いている場合、この接頭辞が入力されます。入力を続けることで、必要なものを選択できます。

後者の方が、タブを繰り返し押すことで補完を選択するよりも入力する方が速いので、望ましいと思います。

この点でzsh補完をbashのように機能させる方法はありますか?

回答:


18
setopt noautomenu
setopt nomenucomplete

あなたはそれらの両方が必要です。タブを十分に押すと、補完のリストが表示されますが、これまでに入力した文字に文字が追加されることはありません。


3

これはデフォルトの動作ではないと思いますが、次のコマンドを使用してオフにできます。

setopt +o menucomplete

さまざまな方法でこの動作に影響を与える他の設定が含まれます:autolistautomenubashautolistlistambiguous。詳細については、「完了」セクションman zshoptionsを参照してください。このコマンドを~/.zshrcファイルに追加できます。

他の多くのものをインタラクティブに設定することができます:

autoload -U compinstall
compinstall

プロンプトとメニューに従います。

Bashでは、この動作はTabへのバインドcompleteまたはmenu-completeで制御され~/.inputrcます。

"\C-i": complete   # do list completion

またはシェルプロンプトからまたはで~/.bashrc

bind '"\C-i": menu-complete' # do menu completion

1
メタコメント:「タブ」文字をどのようにしてそのように見せたのですか?
良い人

2
@Good Person:<kbd>Tab</kbd>
通知があるまで一時停止。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.