キーシーケンスをEscape、zshにバインドする


11

zshでどのようにマップjjしEscますか?

vimでセットアップしたキーマッピングを再作成しようとしています。そこでは、を2回押すとan がvimに送信jjされるESCので、便利に通常モードに入ることができます。j<Esc>

私はすでに試しましたbindkey 'jj' ^[、今すぐ試しますが、うまくいくとは思えませんbindkey 'jj' ^[[。また、通常モードでzshが提供するコマンドのリストを確認しましたが、normalまたはが含まれるものは何も見つかりませんでしたescape。

注ファイル内
の^[文字は、~/.zshrc実際にハードコードされたエスケープです。文字^とだけではありません[。

回答:


12

-sウィジェットの代わりに実際の文字列をバインドする必要があります:

bindkey -s jj '\e'

ここでウィジェットにマップjjしたいと思うかもしれませんがvi-cmd-mode:

bindkey jj vi-cmd-mode

(それは通常/コマンドモードではなく、挿入モードでのバインド用であることに注意してください)


1
二つ目は魅力のように機能します、ありがとう!
— Alexej Magura

2
NOTE設定KEYTIMEOUTはキーバインドを壊すようです。
— Alexej Magura

@AlexejMaguraを追加するだけ:KEYTIMEOUTの設定が低すぎると、zleがダブルプレスを認識できなくなります。
— UltraMaster 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.