2014-10-22 34 views
2

我在我的vimrc下面映射:为什么这个vim映射会很慢?

noremap <leader>b :buffers<CR>:buffer<Space> 

不幸的是,大约半秒到第二延迟显示缓冲区列表。这是否有明显的原因?如果不是,我该如何调试?

+2

也许你有另一个映射开始' b'?如果是这样,看看'超时'和'ttimeout'设置。 – jthill 2014-10-22 00:57:02

+3

在vim中,键入':map,b'(除了','是你的领导键),看看会出现什么。在jthill中提到,如果有歧义,vim会给出一个超时,等待更多的按键,然后再决定没有任何按键并继续前进。 – mixedmath 2014-10-22 03:19:44

回答

10
:verbose noremap <leader>b 

列出了与<Leader>b开始(与:verbose,他们得到了定义也是在)所有映射。为了使Vim更快地检测映射,需要通过添加更多字符来使映射键唯一(例如<Leader>bb)或通过选择另一个映射中尚未使用的不同键(例如<Leader>B)来解决模糊性问题。

+1

或使用''修饰符,这是可用于最近的Vims(请参阅我的答案[这里](http://stackoverflow.com/questions/26395562/why-does-vim-delay-on-this-remapped-key - 和 - 如何 - 我 - 修复它/ 26397275#26397275)) – 2014-10-22 10:08:04

+1

@ChristianBrabandt但与此,其他' b ...'映射变得不可用!然后你可以重映射/取消映射那些(我发现它更干净)。根据记录,我最好只使用'',以使缓冲区本地映射快速覆盖更长的全局映射。 – 2014-10-22 10:27:34

+0

是真的。只是想提起它 – 2014-10-22 10:29:15