繁体   English   中英

为什么Vim延迟这个重映射的密钥? 我该如何解决?

[英]Why does Vim delay on this remapped key? And how do I fix it?

我的vimrc中有以下几行:

noremap gb vnoremap gb

这些的目标非常明确:每当我按下g时,向左移动一个单词。

我的问题是在vim执行移动之前有大约1/2秒的延迟。 好像vim正在等我输入一个加法命令。

我知道vim在期待更多信息时会做这种事情。 但是,这是我唯一一个涉及g的重映射的情况,因此不太可能出现这种情况。

其他人似乎也有类似的问题: 在VIM中重新映射'd'键时消除了延迟

但还没有人提供解决方案。

有什么想法吗?

如果我这样做并使用vim -u NONE -N启动vim,我无法复制该行为。 进一步看,这似乎是由netrw插件引起的,它映射了gx键以及映射g%的matchit插件。 (您可以使用:verbose :map g来查看,如果存在其他可能导致此问题以及它们被定义的地方(通过使用:verbose ),则可以:verbose

因此,为了防止这种情况,您应该取消映射这些映射,然后g工作无延迟。 但正如progo已经说过的那样,你失去了所有那些漂亮的内置g<x>命令,因此我不建议将g映射掉

另请注意,最近的vims具有<nowait>修饰符,因此您可以执行noremap <nowait> gb并且不会发生延迟。

但VIM 期待更多的信息。 有一堆普通模式键绑定以g开头,例如( gggdgfgq ,...),当然vim必须等到它知道你开始输入的内容。

这是一种在不破坏大量其他映射的情况下无法真正解决的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM