オートコンプリートリストに直接移動するようにzshにどのように指示しますか?

オートコンプリートリストに直接移動するようにzshにどのように指示しますか?

zsh(oh-my-zshはデフォルトでインストールされています)を使用して押すとパスがTab自動補完されるのに非常に便利です。

候補が1つしかない場合、オートコンプリートシステムは期待どおりに現在入力されているパスに候補を追加します。

ただし、候補者が複数の場合は、PSの下に表示できるリストが表示され、ここに2つのオプションがあります。

  1. 意図に一致する項目がリストに表示されたら、最初の文字の入力を開始し、Tabキーをもう一度押して単語全体を自動補完します。

  2. リストが表示されたらすぐに Tab キーを押してから、ナビゲーション キー バインディングを使用してリストから項目を選択し、Enter キーを押して入力中の現在のパスに選択した項目を追加できます。

Tab2番目のケースでは、連続して2回押すとTabナビゲーションモードに入ります。

zshナビゲーションリストに直接移動する方法、つまり選択リストがある場合は、最初の項目を強調表示する方法はありますか?

答え1

ファイルに以下を追加します.zshrc

zstyle ':completion:::::default' menu yes select
  • ステートメントはzstyleCSSルールと多少似ています。最初のパラメーターはCSSセレクター(または名前空間)のように機能し、2番目のパラメーターはCSS属性のように機能し、他のすべてのパラメーターは値です。 OMZを覆うzstyle ':completion:*:*:*:*:*' menu select、CSSと同様に、「重い」セレクタを使用するか、同じセレクタを使用しますが、後で設定する必要があります(後者は既存のルールを完全に置き換えます)。ここにdefault*セレクタのこれらの部分はタグに対して常に空であるため、sを省略できますdefault
  • selectプロパティに値の1つが割り当てられると、menu完成したシステムに常にメニュー選択を使用するように指示します。メニューの使用が終わったら。最後のセクションは、OMZの実装に問題があることを示します。 OMZの規則は、Zshにメニューを使用するときは常に選択を使用するように指示しますが、実際にはそうします。いいえZshに常にメニューを使用するように指示します。常に最初の試みで実行メニューを完了するにはyes

または、Zshの完成システムの設定に疲れた場合は、次のことを試してください。Zshオートコンプリートプラグイン

答え2

これを達成する非常に簡単な方法があります。 oh-my-zshはわかりませんが、これはわかります質問
これは、zstyle '*' single-ignored completeシェル構成に位置を含めるのと同じくらい簡単です。後ろにoh-my-zsh設定がロードされました。役に立ったことを願っています!

関連情報