首页 > 解决方案 > 如何使用 API 重用 NerdTree 核心功能?

问题描述

我正在寻找一种在 NERDTreeAddKeyMap 回调函数上重用核心 nerdtree 函数的方法,但在网上查找后我没有找到方法。

我尝试了一些类似下面的东西:

call NERDTreeAddKeyMap({                                                         
  \ 'key': '<Left>',                                                             
  \ 'scope': 'Node',                                                             
  \ 'callback': 'NerdTest' })                                                    

function! NerdTest(node)                                                         
  call closeCurrentDir(a:node)                                                                                                                                                                           
endfunction

但是我在尝试按下目录时遇到了这个错误

E117: Unknown function: closeCurrentDir

有什么建议么 ?

此致,

标签: vimnerdtree

解决方案


closeCurrentDir函数是脚本本地函数;它不暴露在外面。

有一些技巧可以使其可访问,或者您可以要求作者将其公开为一个:help autoload函数。

但是,由于该函数已映射到键 ( :help NERDTree-x),因此您只需通过 触发该键即可:normal。如果您使用相应的配置变量 ( g:NERDTreeMapCloseDir) 而不是对密钥进行硬编码,这甚至允许重新映射。

function! NerdTest(node)
    execute 'normal' g:NERDTreeMapCloseDir
endfunction

推荐阅读