除いてどのように使用できますか?zsh完了メニュー/ウィジェットを終了しますか?

除いてどのように使用できますか?zsh完了メニュー/ウィジェットを終了しますか?

多くのzshユーザーと同様に、コマンドプロンプトで補完を呼び出すときに方向矢印キーを使用してナビゲートできるメニューが表示されるように完成を設定しました。つまり、~/.zshrc

autoload -Uz compinit
compinit

zstyle ':completion:*' menu yes select
zstyle ':completion:*:*:cd:*' menu yes select

ディレクトリを削除するには、/var/log/nginx/somewebsite完了を使用して次のようにコマンドを起動します。

ubuntu% sudo rm -rf /var/l<TAB>
lib/    local/  lock@   log/

方向矢印キーを使用して項目をナビゲートします。カーソルを項目の上に移動すると、コマンドラインに挿入されます。目的のオプションが選択されたら、ENTER[基本]をクリックするとメニューウィジェットが終了し、カーソルがコマンドラインに戻ります。
問題は、ENTER完了メニューで項目を受け入れてコマンドを実行することですが、部分的ENTERに完了したコマンドを実際に実行するときに完了を受け入れると思います!

zshの「完了提案の承諾とウィジェットの終了」コマンドを以外のコマンドに再マップできますかENTER
たとえば、TAB偶数Ctrl+ y(vimの承認完了キーマップと同じ)

ベストアンサー1

私はこれに関する文書を見つけました。

  • man zshmodules
    • ZSH/COMPLISTモジュール
      • メニュー選択

完成した提案を受け入れるためにキーをバインドするには、Ctrly次のものを使用できます。

bindkey ^Y accept-search

ドキュメントにコメントがあります

次の点に注意してください。(複合機能)メニュー選択グラフは常に同じことを行い、カスタムウィジェットに置き換えたり、機能セットを拡張したりすることはできません。

したがって、バインディングを解除できませんEnteraccept-search実際に興味深いのは、

bindkey -r ^M accept-search

やっと成功した解く accept-line一般的なコマンドラインから。

おすすめ記事