2011-11-02 56 views
8

有一件事让我感兴趣。如果一个人想要映射具体到某些缓存的映射,一个可以去任何一种方式
一)与Vim中的缓冲区本地映射:<buffer>与<localleader>

nnoremap <buffer> d dd 

b)或与

nnoremap <localleader>d dd 

这将有效,因为localleader是做特定于该缓冲区,也应该使该特定于该缓冲区的映射。

在某种程度上,看起来像两种重叠的方式来做同样的事情。是否有使用一种方式而不是另一种的理由?也许某种方式比其他方式更好?

回答

10

据我所知maplocalleader是缓冲区之间共享。这意味着你的第二张地图不会特定于缓冲区。

真的,如果你定义的地图是具体到一个缓冲区(例如地图仅适用于特定的文件类型),我相信惯例是使用两个<buffer><localleader>。如果您定义的地图不是特定于缓冲区的,则应使用<leader>

+1

啊,我明白了。所以不是缓冲区特定的,但它的目的是用于缓冲区特定的映射。我现在重新阅读帮助,他们不能把它更容易混淆。或者我又错了吗? – Rook

+1

是的,你的理解和我一样。 'maplocalleader'几乎没有文件记录,但经过一些测试后,这似乎是正确的行为。 –