是否有一种常用的方法来重新映射特定Vim插件中使用的密钥,例如NERDTree或TagList?我一直在尝试重新映射TagList插件的一些键,但我一直无法这样做。 NERDTree的键更容易重新映射,但这是因为插件的编写方式?
答案 0 :(得分:2)
如果使用<Plug>
(:help using-<Plug>
),现代插件可以像内置的vim命令一样编写为可重新映射。插件可以检查用户是否已将某些内容映射到<Plug>
命令(例如:<Plug>(textobj-indent-a)
),如果没有,则它会使用自己的映射。这样,用户可以定义他们想要的地图,插件将填写其余部分。
在rkulla的回答中,他向您展示了NERD_tree的映射代码。他们正在做的是为用户提供变量以设置更改其映射:
let g:NERDTreeMapDeleteBookmark = 'A'
let g:NERDTreeMapMenu = 'B'
let g:NERDTreeMapHelp = 'C'
可以将这些语句添加到vimrc中以定义您自己的地图(而不是更改插件代码)。
其他插件将使用名为no_nerdtree_maps
的变量(每个插件的名称不同)。如果在vimrc中设置此变量,则可以创建自己的插件到插件的函数/命令。
答案 1 :(得分:0)
只需在插件目录中打开NERD_tree.vim,您就会看到一个名为“初始变量调用键映射”的部分,调用如下:
call s:initVariable("g:NERDTreeMapDeleteBookmark", "D")
call s:initVariable("g:NERDTreeMapMenu", "m")
call s:initVariable("g:NERDTreeMapHelp", "?")
...
s的第二个参数:initVariable()是要使用的键盘快捷键。只需将其更改为您想要的内容即可。