我的vim跳到下一个字很慢,我做错了什么?

时间:2012-03-15 14:50:19

标签: vim

在我的.vimrc文件中,我有以下映射:

nnoremap \ *
nnoremap \| #

用于跳转到下一个单词和跳到最后一个单词的命令。

出于某种原因,我的跳转到下一个单词的命令很慢,在执行命令之前大约为1秒,而跳转到最后一个单词的快捷方式很好(没有明显的延迟) 。我已经尝试将不同的键映射到命令,并且仅在某些情况下存在此延迟。

有谁知道这种行为的原因?

3 个答案:

答案 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)。这是我做的:

  1. 发出:nmap命令以提取所有映射的列表。
  2. 标记以“跳到下一个单词”键开头的那些。就我而言,这些是yoyO
  3. .vimrc中取消映射此命令。就我而言,这些是unmap younmap yO
  4. 使用.vimrc重新加载:so $MYVIMRC以使更改生效。