多くの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モジュール
- メニュー選択
- ZSH/COMPLISTモジュール
完成した提案を受け入れるためにキーをバインドするには、Ctrly次のものを使用できます。
bindkey ^Y accept-search
ドキュメントにコメントがあります
次の点に注意してください。(複合機能)メニュー選択グラフは常に同じことを行い、カスタムウィジェットに置き換えたり、機能セットを拡張したりすることはできません。
したがって、バインディングを解除できませんEnter。accept-search
実際に興味深いのは、
bindkey -r ^M accept-search
やっと成功した解く accept-line
一般的なコマンドラインから。