Zsh 完了: 最初のタブでリスト選択に移動

Zsh 完了: 最初のタブでリスト選択に移動

短い紹介

zshと入力すると、<tab>最初の完成候補が強調表示されます。まもなく<tab>リストに焦点を当てるために2番目のクリックを要求する代わりに。

はい

次のディレクトリ構造があるとします。

Projects/
  |
  +-- FooAwesome/
  |
  +-- FooAwesomeThings/
  |
  +-- FooBar/

入力してProjects/入力すると、cd Foo<tab>zshは親切にオプションのリストを提供します。

Zsh完了オプション

ただし、リスト内で選択項目を取得するには、<tab>最初の候補が強調表示される前にもう一度クリックする必要があります。

リストの最初の項目が選択されました

最初にクリックしたときに最初の選択を強調表示するにはどうすればよいですか<tab>

現在の構成

zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate
zstyle ':completion:*' expand prefix
zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=* r:|=*'
zstyle ':completion:*' menu select=2
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s

zstyle ':completion:*' file-list all
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

zstyle ':completion:*' group-name ''

zmodload zsh/complist
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'j' vi-down-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect '^xi' vi-insert

zstyle :compinstall filename '/Users/ashton/.zshrc'
autoload -Uz compinit
compinit

私はプラグインマネージャoh-my-zshやそのようなものを使用しません。可能であれば、私は素晴らしいカスタムパッケージ、または何もない純粋なzsh構成である「一般的な」ソリューションを好みます。

ベストアンサー1

構成から削除すると、setopt menu_complete最初の項目に移動が停止します。setopt no_list_ambiguousこれも並行しなければならないと思います。zshoptions(1)説明する:

MENU_COMPLETE (-Y)

完了がわからない場合は、可能性を一覧表示したりビープ音を鳴らすのではなく、最初の一致をすぐに挿入してください。その後、要求が再び完了すると、最初の一致が削除され、2番目の一致が挿入されるように進みます。これ以上一致するものがない場合、最初の一致が再び返されます。reverse-menu-complete異なる方向にリストを繰り返すために使用できます。このオプションは無視されますAUTO_MENU

おすすめ記事