如何检查NIMDTree是否在vimscript中打开?

时间:2017-01-09 05:40:22

标签: vim nerdtree

我尝试编写一个命令以保存与NERDTree兼容的会话,我需要检查NERDTree是否已打开,我无法通过Google找到任何信息。

2 个答案:

答案 0 :(得分:8)

NERDTree在tab-local变量中内部存储其临时缓冲区的名称(表示Vim中的树内容)。使用bufwinnr(),您可以向Vim询问缓冲区当前是否已加载到窗口中。

我使用以下函数检查NERDTree是否存在(在当前标签页中;如果您需要全局,则必须使用gettabvar()遍历所有标签。)

function! IsNerdTreeEnabled()
    return exists('t:NERDTreeBufName') && bufwinnr(t:NERDTreeBufName) != -1
endfunction

答案 1 :(得分:4)

NERDTree插件本身已经具有用于此目的的功能。

g:NERDTree.IsOpen()

示例:

if exists("g:NERDTree") && g:NERDTree.IsOpen()
    ....
endif