将键序列绑定到Escape,zsh


11

如何在zsh中映射jjEsc

我正在尝试重新创建我在vim中设置的映射的键jj映射,ESC以便每当我按两次时j,它将an发送<Esc>到vim ,这使我可以更方便地进入普通模式。

我已经尝试过了bindkey 'jj' ^[,并且将要尝试bindkey 'jj' ^[[,但是我怀疑它是否会起作用。我还检查了正常模式下zsh提供的命令列表,但没有看到包含normal或的任何内容escape

注意我文件中
^[字符~/.zshrc是实际的硬编码转义符;不只是人物^[

Answers:


12

您需要-s绑定实际的字符串而不是小部件:

bindkey -s jj '\e'

虽然您可能想jjvi-cmd-mode此处映射到小部件:

bindkey jj vi-cmd-mode

(请注意,这是用于在插入模式下进行绑定,而不是在普通/命令模式下进行绑定)


1
第二个作品的魅力,谢谢!
Alexej Magura

2
NOTE设置KEYTIMEOUT似乎破坏了键绑定。
Alexej Magura

@AlexejMagura刚刚添加:将KEYTIMEOUT设置得太低会阻止zle识别双击。
UltraMaster
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.