vim NERDTree 现有函数的快捷方式

vim NERDTree 现有函数的快捷方式

我想使用右箭头键打开 NERDtree 中的节点。我看到有 NERDTreeAddKeyMap,但我是 vimscript 新手,不知道如何正确调用它。我想使用右箭头调用 activateNode。我通过将以下行添加到 NERD_tree.vim 本身来完成此操作:

exec "nnoremap <silent> <buffer> <Right> :call <SID>activateNode(0)<cr>"

但我想在我的 .vimrc 中以正确的方式执行此操作

答案1

:help NERDTreeAddKeyMap()将向您展示如何为 NERDTree 编写一个小插件。由于您正在调用内置的 NERDTree 函数,因此您甚至不需要自定义函数。

答案2

我认为,除非我使用的版本(4.2.0)存在限制,否则以下内容将满足您的要求。

在 mymapping.vim 中,在 ~/.vimfiles/nerdtree_plugin/

" -*- vim -*-
call NERDTreeAddKeyMap({ 'key': "Right", 'scope': "Node", 'callback': "<SID>activateNode" })

现在,为了让“Right”正常工作,您必须编辑 NERD_tree.vim,如下所示:

"FUNCTION: KeyMap.bind() {{{3
function! s:KeyMap.bind()

改变:

if mapkey =~? '^\([CM]-\|middlerelease\|2-leftmouse\|leftrelease\)'

到:

if mapkey =~? '^\([CM]-\|middlerelease\|2-leftmouse\|leftrelease\|right\)'

旧代码没有对非 <MiddleRelease>、<2-LeftMouse> 或 <LeftRelease> 的映射键进行特殊处理

相关内容