我遇到了一个问题,从命令行启动 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>
只会带来麻烦;请选择其他键。