如何在Vim中重新映射特定插件的密钥

时间:2011-06-25 09:29:19

标签: vim

是否有一种常用的方法来重新映射特定Vim插件中使用的密钥,例如NERDTree或TagList?我一直在尝试重新映射TagList插件的一些键,但我一直无法这样做。 NERDTree的键更容易重新映射,但这是因为插件的编写方式?

2 个答案:

答案 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()是要使用的键盘快捷键。只需将其更改为您想要的内容即可。