缓冲Vim中的本地映射:<buffer>与<localleader>

Roo*_*ook 8 vim

有一件事让我感兴趣.如果想要映射特定于某个缓冲区的映射,可以采用任何一种方式
a)使用

nnoremap <buffer> d dd
Run Code Online (Sandbox Code Playgroud)

b)或与

nnoremap <localleader>d dd
Run Code Online (Sandbox Code Playgroud)

这将有效,因为localleader特定于该缓冲区,也使该映射特定于该缓冲区.

在某种程度上,似乎是两种重叠的方式来做同样的事情.有没有理由使用一种方式而不是另一种方式?出于某种原因可能是一种优先于另一种方式的方式吗?

Ran*_*ris 10

据我所知maplocalleader,缓冲区之间共享.这意味着您的第二个地图不会特定于缓冲区.

实际上,如果你要定义一个特定于缓冲区的地图(例如地图只涉及特定的文件类型),我相信惯例是使用<buffer><localleader>.如果您要定义的地图不是特定于缓冲区的,那么您应该使用它<leader>.