我不明白为什么会有这一行:
nmap <C-[> :tabprevious<cr>
... 使 vim 立即以“c”(更改?)模式打开。这是我喜欢在 vim 中用于选项卡导航的一对映射中的一半:
" screw taglist; yay tabs!
nmap <C-[> :tabprevious<cr>
nmap <C-]> :tabnext<cr>
后一条规则运行得很好,但前一条规则在打开 vim 时却出现了这种奇怪的行为。手动返回正常模式后,两个映射都按预期工作(更改选项卡)。
发生了什么事?我是不是忽略了一些简单的事情?
顺便说一句,我在 OSX 10.5 上通过 iTerm2 使用 CLI vim(即不是 MacVim)。我已经仔细检查了整个.vimrc
文件并安装了插件,并确认——即使禁用了所有插件并注释掉了所有其他选项——我还是会因为上面的行而出现这种情况。
答案1
您肯定不想将 <C-[> 映射到任何东西,因为它与映射 <esc> 同义,这确实会使 Vim 变得混乱。
编辑:实际上,在正常模式下映射 <esc> 可能不是什么大问题,但我不推荐这种做法。
我可以重现您的问题,但不幸的是我无法弄清楚为什么会发生这种情况或如何解决它。