vim - 如何使用 API 重用 NerdTree 核心功能?
问题描述
我正在寻找一种在 NERDTreeAddKeyMap 回调函数上重用核心 nerdtree 函数的方法,但在网上查找后我没有找到方法。
我尝试了一些类似下面的东西:
call NERDTreeAddKeyMap({
\ 'key': '<Left>',
\ 'scope': 'Node',
\ 'callback': 'NerdTest' })
function! NerdTest(node)
call closeCurrentDir(a:node)
endfunction
但是我在尝试按下目录时遇到了这个错误
E117: Unknown function: closeCurrentDir
有什么建议么 ?
此致,
解决方案
closeCurrentDir函数是脚本本地函数;它不暴露在外面。
有一些技巧可以使其可访问,或者您可以要求作者将其公开为一个:help autoload
函数。
但是,由于该函数已映射到键 ( :help NERDTree-x
),因此您只需通过 触发该键即可:normal
。如果您使用相应的配置变量 ( g:NERDTreeMapCloseDir
) 而不是对密钥进行硬编码,这甚至允许重新映射。
function! NerdTest(node)
execute 'normal' g:NERDTreeMapCloseDir
endfunction
推荐阅读
- java - 基于数据库将 JPA 列定义为 LOB
- ios - Can TFLite's CoreMLDelegate use GPU and CPU simultaneously in iOS?
- ios - EXC_BAD_ACCCESS 如果在动态框架中创建对象
- python - 数据框未在图表中排序
- c# - 使用 ScrollViewer 从中心原点缩放图像在 UWP 中不起作用
- python - 将数据(在用户登录之前收集)连接到用户帐户(在用户登录之后) - Django
- python - 如何使用 Postgres DB 中的现有表并在 Django 中使用它们
- c# - 单击下一个或上一个按钮时,请求不应转到水晶报表中的数据库或服务器
- django - Django 在创建对象后更新 GenericForeignKey
- bash - 合并数百万文件的最快方法