zshのAlt + x情報とAlt + xを他のコンテンツにバインドする方法

zshのAlt + x情報とAlt + xを他のコンテンツにバインドする方法

と入力すると、Alt-x次のようなexecute:ポップアップが表示されます。

~ % 
execute: _

引き続き入力できます(スペースは使用できません)。

~ %        
execute: what'sthis

Q1.このプロモーションの目的は何ですか?

Q2: このショートカットを別のキーバインディングに変更するには?M-xこれはemacsで非常に便利で、私はしばしばemacsでシェルを使用しているので、2つがクラッシュします。

数時間検索しましたが、まだ回答はありません。 (私のキーワードが間違っている可能性があります。Google:「zsh」+「実行:」「google:zshキーバインディングバインドキー」

ベストアンサー1

これにより:

bindkey | grep -F '^[x'

または簡単に:

bindkey '^[x'

またはAlt + xを表現する方法について質問がある場合:

bindkey | grep -w x

あなたが見ることができるもの:

"^[x" execute-named-cmd

これは、ESC xにバインドされたウィジェットの名前で、ほとんどの端末が押されたときに送信される一連のESC x文字です。Alt+x

info zsh execute-named-cmd

ウィジェットが何をしているかを教えてくれます(zsh-doc一部のシステムではパッケージをインストールする必要があるかもしれません)。

名前が示すように、コマンドの実行を求めるメッセージが表示されます。ここのコマンドはzshウィジェット、エディタコマンドです。これは、command(から呼び出される)の代わりにzshエディタコマンドであることを除いて、emacs'と同じです。Meta-xemacsexecute-extended-commandemacs

たとえば、そのプロンプトで入力してタップすると、デフォルトでbackward-delete-charバインドReturnされたウィジェットが呼び出されますBackspace。でも同じことができますemacs

代わりに入力しdescTabTab塗りつぶしdescribe-key-briefly、ウィジェットはデフォルトでどのキーにもバインドされていませんemacs)、キーを押すとReturn他のプロンプトが表示されます。

$
Describe key briefly: _

たとえば、クリックするとAlt+x何をするかを見ることができます。これにより、次のようになります。

"^[x" is execute-named-cmd

で同じ操作を実行すると、emacs次のようになります。

M-x runs the command execute-extended-command

組み込まれていないウィジェットの場合、ウィジェットのリストを表示するにはキーバインディングリストをzle -al実行します。zle -lbindkey

Alt+x他のものにバインドできます。

bindkey "^[x" some-widget

おすすめ記事