有一件事让我很感兴趣,如果想要Map特定于某个缓冲区的Map,可以选择任何一种方法a)使用
nnoremap <buffer> d dd
B)或与
nnoremap <localleader>d dd
这将有效地使Map也特定于该缓冲器。在某种程度上,这看起来像是做同一件事的两种重叠的方法。使用一种方法而不是另一种方法有什么原因吗?可能是因为某种原因,一种方法比另一种方法更受欢迎吗?
q8l4jmvw1#
据我所知,maplocalleader是在缓冲区之间共享的,这意味着你的第二个Map不是特定于缓冲区的。实际上,如果你定义的是一个特定于缓冲区的Map(例如,Map只与特定的文件类型相关),我认为惯例是使用<buffer>和<localleader>。如果你定义的不是特定于缓冲区的Map,你应该只使用<leader>。
maplocalleader
<buffer>
<localleader>
<leader>
raogr8fs2#
这对于防止特定文件类型的Map在仅打开过一次该文件类型的情况下变为全局Map非常重要。
<LocalLeader>
这适用于全局。作为described by R2A2,您可以将<LocalLeader>Map为<Leader>的方便替代。在您的vimrc中的某个地方:
<Leader>
vimrc
let maplocalleader = '_' nnoremap <localleader>h :echo 'you just hit _h'<cr>
你可以使用<localleader>和<buffer>,就像Vim内部帮助中推荐的那样,对于你的ftplugin,那么_h只能在那种文件类型下工作。
_h
2条答案
按热度按时间q8l4jmvw1#
据我所知,
maplocalleader
是在缓冲区之间共享的,这意味着你的第二个Map不是特定于缓冲区的。实际上,如果你定义的是一个特定于缓冲区的Map(例如,Map只与特定的文件类型相关),我认为惯例是使用
<buffer>
和<localleader>
。如果你定义的不是特定于缓冲区的Map,你应该只使用<leader>
。raogr8fs2#
1个月
这对于防止特定文件类型的Map在仅打开过一次该文件类型的情况下变为全局Map非常重要。
两个
<LocalLeader>
这适用于全局。作为described by R2A2,您可以将
<LocalLeader>
Map为<Leader>
的方便替代。在您的vimrc
中的某个地方:你可以使用
<localleader>
和<buffer>
,就像Vim内部帮助中推荐的那样,对于你的ftplugin,那么_h
只能在那种文件类型下工作。