如何在 zsh 命令行上舒适地切换到 vi 命令模式?

Ema*_*esu 23 vi zsh command-line

在 vi 中,我已将 'jj' 映射为转义符,以便能够在不使用烦人的转义键的情况下切换到命令模式。现在我想对使用 vi 模式的命令行编辑进行相同的操作。我已经找到了以下解决方案:

bindkey '^j' vi-cmd-mode
Run Code Online (Sandbox Code Playgroud)

让您使用 control-j 更改为命令模式。仍在寻找没有修饰键的解决方案,如“jj”或类似的东西。

Eht*_*ury 35

注意:您应该查看man zshzle很多关于自定义bindkey和模拟GNU readline.

这就是我映射jj到的方式Esc

bindkey -M viins 'jj' vi-cmd-mode
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣区分插入模式和正常模式,您可以尝试 akira在这里提到的建议

  • 我将 KEYTIMEOUT 设置得太低,这就是原因。 (7认同)
  • @Ultramaster 提出了一个很好的观点。如果您已经为速度设置了 KEYTIMEOUT,我建议 >= 20 毫秒。如`export KEYTIMEOUT=20` (2认同)