Vim 我跳转到下一个单词的速度很慢,我做错了什么?

Vim 我跳转到下一个单词的速度很慢,我做错了什么?,vim,Vim,在我的.vimrc文件中,我有以下映射: nnoremap \ * nnoremap \| # 用于跳转到下一个单词和跳转到最后一个单词的命令 由于某些原因,我的“跳转到下一个单词”命令很慢,大约在执行该命令前1秒,而“跳转到最后一个单词”快捷方式很好(没有明显的延迟)。我已经尝试将不同的键映射到命令,只有在某些情况下才会出现这种延迟 有人知道这种行为的原因吗?因为在您键入\后,vim正在等待更多的键 您可以通过以下方式更改等待时间(默认值1s): (映射时在0.1秒后超时,键代码映射时在0.

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

nnoremap \ *
nnoremap \| #
用于跳转到下一个单词和跳转到最后一个单词的命令

由于某些原因,我的“跳转到下一个单词”命令很慢,大约在执行该命令前1秒,而“跳转到最后一个单词”快捷方式很好(没有明显的延迟)。我已经尝试将不同的键映射到命令,只有在某些情况下才会出现这种延迟


有人知道这种行为的原因吗?

因为在您键入
\
后,
vim
正在等待更多的键

您可以通过以下方式更改等待时间(默认值
1
s):


(映射时在
0.1
秒后超时,键代码映射时在
0.1
秒后超时)。

如果您打算用第一个命令映射反斜杠,我建议将

let mapleader='_'
let maplocalleader='_'

因为许多插件创建的映射的
{lhs}
开头,因此vim正在等待下一个键,以确定它是否是@kev正确指出的一些插件映射。如果您将以上几行放入vimrc,那么使用
*map…
的插件现在将创建以下划线开头的映射,而不是以反斜杠开头的映射。如果这没有帮助,请查看
verbose map\
,并阅读插件文档,以确定是否有正式方法让它们与其他领导者生成映射。

我也有类似问题,但与mapleader无关。原来还有其他一些命令使用我的“跳转到下一个单词”键作为前缀(在我的例子中是
y
)。以下是我所做的:

  • 发出
    :nmap
    命令以提取所有映射的列表
  • 标记以“跳转到下一个单词”键开头的单词。在我的例子中,这些是
    yo
    yo
  • .vimrc
    中取消映射此命令。在我的例子中,这些是
    unmap yo
    unmap yo
  • 使用
    :so$MYVIMRC
    重新加载
    .vimrc
    ,以使更改生效

  • 反斜杠是你的mapleader吗?谢谢,我不知道这个设置。@user1266594我建议不要使用``字符,因为许多插件都使用它。更改超时将使这些插件使用起来不那么舒适。很好!我还需要设置timeoutlen=1000以不干扰我的各种键绑定:jj等。这些键绑定在timeoutlen=100时不起作用。
    let mapleader='_'
    let maplocalleader='_'