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
これは効果があります両方完成メニューと「インライン」完成提案を有効にすると!