zshの挿入モードでは、コマンドバインディングに2文字(^ tmなど)を使用できますか?

zshの挿入モードでは、コマンドバインディングに2文字(^ tmなど)を使用できますか?

私の現在の.zshrcファイル

bindkey -M viins -s '^tm' '^[Iman ^[Ela ^[d$'

しかし、これはできませんが、削除するとショートカットでは、ショートカットのみが^t機能します。私はそれをしたいです^tm

どんなアイデアがありますか?

ベストアンサー1

動作しますが、すぐに行う必要があります。一連の文字をバインドできますが、アイデアはこれを次のようにバインドすることです。一連の文字を送信します。

Homeたとえば、多くの端末はこのキーを押すと.を送信します^[[1~。最初の文字は、vi挿入モードでもバインドされるESCです。したがって、何かをバインドすることはそれ自体で動作を停止しESC[1~ないことが重要です。ESC

zshこの$KEYTIMEOUT設定(デフォルトは0.4秒)を使用して、次のキーを押すのを待つ時間、複数文字キーを押すか、複数の単一文字キーキーを順番に押すかを決定します。

これで始まる別のキーマッピングがない場合は、特に別のマッピングが^Tない場合は無限に待機できます。これはデフォルトのviinsキーマップにマッピングされることが起こりますが、これはあまり役に立ちません。したがって、簡単に削除できます。^Tzshm^Tself-insert

bindkey -Mviins -r '^T'

やりたいことをします。

run-helpしかし、ウィジェットにバインドしたいかもしれません。

おすすめ記事