Zsh完了、Shift-Tabを有効にする

Zsh完了、Shift-Tabを有効にする

zshに可能な完了項目メニューが表示されたら、それを使用して前の完了項目にアクセスできるようにしたいですshift-tab。以前の完了項目にアクセスするために使用されるキーを制御するオプションはありますか?

もしそうなら、~/.zshrc それを設定するために私のファイルに何を追加する必要がありますか?

現在は、矢印キーを使用して完成メニューをナビゲートできますが、矢印キーが所定の位置になく、使いにくいので、これは好きではありません。

答え1

エディタコマンドをキーマップreverse-menu-completeにバインドしようとしています。menuselect

bindkey -M menuselect '^[[Z' reverse-menu-complete

移植可能なエスケープシーケンスがどのようなものかわかりません。したがって、配列を使用して正しくバインドする^[[Z方法があるかどうかを確認するには、terminfo(5)を確認することをお勧めします。$terminfo

menuselectモジュールをロードしたzsh/complist後、キーマップを使用できます。で完成システムを構成すると、compinstall通常、最初に何かを完了したときにこのモジュールが自動的にロードされます。そのバインディングをあなたのバインディングに追加するには、まずモジュール~/.zshrcを手動でロードする必要があります。

zmodload zsh/complist

答え2

許可された答えは実際に私には適していません。zshでメニュー補完(設定)を使用しようとするとzstyle ':completion:*' menu select'競合が発生します。zmodload zsh/complist.zshrc

name clash when adding ZLE function `menu-select'

設定しないとzstyle ':completion:* menu select操作は行われず(操作を完了するためにメニューが使用されないため)、含めないと設定はzmodload...適用されません。

正確で簡単な設定は次のとおりです。

bindkey '^[[Z' reverse-menu-complete

これは効果があります両方完成メニューと「インライン」完成提案を有効にすると!

関連情報