作者:书友55218170 | 来源:互联网 | 2022-12-10 14:31
我在配置文件中有这个:
nnoremap a a
vnoremap a A
并在视觉模式下按a需要2秒钟才能执行操作
为什么会这样?这是一种不好的做法吗?
1> Stun Brick..:
这个问题是由于您有一些以"a"开头的其他映射(在可视模式或所有模式下)的事实.
想象一下,我在.vimrc中映射了2个不同的命令(或者你称之为配置文件)
vnoremap a a
vnoremap ab D.
在这里,当我在视觉模式下按'a'时,我希望它附加文字.当我按'ab'时,我希望它为我删除一行.
我现在伸手去拿我的键盘然后按'ab'.vim如何知道我想删除一行而不只是在文本中附加字母'b'?两者都需要相同的按键.
所以为了区别对待,当我点击'a'键时,vim会等待一秒钟看看我选择哪个命令,如果我快速按下'b',它会发现这实际上是指令'ab',意思是'D'这意味着删除.
如果我按'a'并等待一秒钟,vim将接受我发出的指令'a',意思是'A'表示追加.然后我点击'b',字母'b'被附加到文本中.
如果你想要它停止,你将不得不通过你的.vimrc并将你的映射更改为不重叠(以相同的字母开头),或者你可以键入
:h leader
vim并了解mapleaders,这将使它更容易为你计划你的映射.我亲自将我的枫木设置为空间,但许多人也喜欢使用逗号或其他一些他们选择的钥匙.
tldr:Vim正在等待一秒钟,看你是否要按另一个键并发出不同的命令