在我的.vimrc文件中,我有以下映射:
nnoremap \ *
nnoremap \| #
用于跳转到下一个单词和跳到最后一个单词的命令。
出于某种原因,我的跳转到下一个单词的命令很慢,在执行命令之前大约为1秒,而跳转到最后一个单词的快捷方式很好(没有明显的延迟) 。我已经尝试将不同的键映射到命令,并且仅在某些情况下存在此延迟。
有谁知道这种行为的原因?
答案 0 :(得分:4)
因为vim
在您输入\
您可以通过以下方式更改等待时间(默认1
秒)
:set timeout timeoutlen=100 ttimeoutlen=100
(0.1
秒后映射超时,0.1
秒后关键代码超时。
答案 1 :(得分:0)
如果您打算使用第一个命令映射反斜杠,我建议使用类似
的内容let mapleader='_'
let maplocalleader='_'
进入你的vimrc(用你喜欢的任何符号序列替换下划线),因为许多插件创建{lhs}
以<Leader>
开头的映射,因此vim正在等待下一个键以确定是否这是@kev正确指出的一些插件映射。如果将上面的行放入vimrc,那些使用*map <Leader>...
的插件现在将创建以下划线开头的映射,而不是使用反斜杠启动它们。如果这没有帮助,请查看verbose map \
并阅读插件文档,以确定是否有正式的方法让他们与其他领导者生成映射。
答案 2 :(得分:0)
我有类似的问题,但与mapleader无关。事实证明,还有一些其他命令使用我的“跳到下一个单词”键作为前缀(在我的情况下是y
)。这是我做的:
:nmap
命令以提取所有映射的列表。yo
和yO
。.vimrc
中取消映射此命令。就我而言,这些是unmap yo
和unmap yO
。.vimrc
重新加载:so $MYVIMRC
以使更改生效。