我使用 vim 编辑大量 tex 文件,因此我\
经常使用这个字符。然而,在\
插入模式下插入时,vim 会将光标在同一位置暂停一秒钟,这与任何其他字符不同。
当然,我不需要等待整整一秒钟,我可以继续输入,但文本只会在这一秒之后插入。
我发现我可以通过映射来创建类似的行为,例如:
inoremap ;; <esc>:
inoremap jj <esc>
等等。似乎 vim 正在等待另一个字符跟随,因此它可以评估映射。
尽管取消设置\
地图领导者并不能缓解这个问题,但这也正是我所预料的。
另外,我不知道这是否相关,但<esc>
在插入模式下使用不会立即起作用(同样是因为 vim 期望之后出现一些内容)。
是否有一个 vim 设置可以让我将粘贴时间设置为 0,但我仍然希望能够使用我的映射;;
,jj
和<esc>
。
我知道,timeout
但这没有帮助。如果我这样做,timeoutlen=0
所有多键映射都将无法使用。
答案1
您已确定问题所在:\ 被用作 imap 的第一个字符。要找出它被设置在哪里,您可以执行
:verbose imap \
除了在编辑 TeX 文件时消除映射或取消映射之外,我没有其他解决方案。你可以在 Unix 上名为 ~/.vim/after/ftplugin/tex.vim 或 Windows 上名为 ~\vimfiles\after\ftplugin\tex.vim 的文件中放入如下一行:
silent! iunmap \x
您可以x
用有问题的映射的相应部分进行替换。
我使用了一些 LaTeX,安装了 Vim-LaTeX-Suite,但没有看到这种行为,所以至少这不是该套件的问题。
答案2
看起来您有一个以“\”开头的插入模式映射,可能是由您最近安装的插件设置的。要查找是否存在该映射以及哪个文件创建了该映射,请运行以下命令:
:verbose imap \