为什么映射以替换模式启动命令行 Vim?

为什么映射以替换模式启动命令行 Vim?

我遇到了一个问题,从命令行启动 Vim 时会以替换模式启动。我最终将问题缩小到配置中的这一行:

nnoremap <ESC>         :noh<return><ESC>

如果我将键更改为除 like 之外的任何内容nnoremap <space><space><space>(只是为了测试……我永远不会保持这种状态。),则看不到此行为。如果我使用 MacVim 而不是命令行 Vim,我也看不到它。我使用 iTerm 2 和xterm-256color终端,并将 zsh 作为我的 shell 类型,因为这似乎可能相关。

有人知道我应该关注什么来解决这个问题吗?当然欢迎回答,但如果你也能分享我应该从哪里考虑这个问题,这可能会帮助我将来解决类似问题。

谢谢!

答案1

终端使用的 ANSI 转义序列都以 Escape ( ^[) 开头,而 Vim 使用这些序列与终端通信,因此当您映射 时会感到困惑<Esc>。这也是为什么 MacVim(和 GVIM)中没有问题的原因;它们不使用终端并且具有不同的 I/O 通道。

终端 Vim 中的映射<Esc>只会带来麻烦;请选择其他键。

相关内容