VSVim - 转义映射破坏光标位置行为

VSVim - Escape mapping breaks cursor position behavior

我将 _vsvimrc 文件缩减为一行:

inoremap jk <esc>

现在,每当我直接点击 jk esc 时,它会返回正常模式,但也会将光标放在第 0 列:gif showing the behavior.

删除 jk 的映射可解决问题。

这是预期的行为吗?我在 Gvim 中做了同样的测试,它似乎没有同样的问题。

Related issue on github

此行为是设计使然。在此示例中,当您点击 <Esc>(直接或通过 jk)时,插入符号处于虚拟 space。当发生这种情况时,VsVim 会将插入符号放在同一行的最后一个真正的 space 中。

如果您在 Visual Studio 中启用白色 space 查看功能,则更容易看到此行为:

  • 编辑 -> 高级
  • 检查视图白色 Space