NERDTree插件API小记
之前因为vim上的TFS插件一直不好使,自己写了一个简单的插件在vim上签出TFS源文件。为了在NERDTree上面集成菜单功能,研究了下NERDTree插件。年底忙里偷闲整理了一些关于NERDTree的知识点,分享出来。
1.添加NERDTree文件菜单
在vim插件目录创建一个nerdtree_plugin文件夹,在其中新建vim脚本文件,使用NERDTreeAddMenuItem函数添加一项按钮项。参数格式:
1 | {'text': 'menu text', 'shortcut': 'short key', 'callback':'callback function name'} |
示例:
1 | call NERDTreeAddMenuItem({ 'text': 'TFS Check (o)ut', 'shortcut': 'o', callback': 'TFSCheckoutCallback' }) |
2.获取当前文件节点
1 | let currentNode = g:NERDTreeFileNode.GetSelected() |
3.获取文件路径
1 | let currentFile = currentNode.path._strForGlob() |
4.更新文件状态
1 | cal currentNode.path.refresh() |
5.链接
附插件git地址:https://github.com/lccf/TFSCheckout
NERDTree FileNode参考:https://github.com/scrooloose/nerdtree/blob/5.0.0/lib/nerdtree/tree_file_node.vim
NERDTree Pathp参考:https://github.com/scrooloose/nerdtree/blob/5.0.0/lib/nerdtree/path.vim
NERDTree Public API参考:https://github.com/scrooloose/nerdtree/blob/5.0.0/plugin/NERD_tree.vim#L164