可以在vimscript中访问NERDTree缓冲区吗?

时间:2012-04-26 20:35:27

标签: vim nerdtree

我正在研究NERDTree的插件,我问过here

我在Github上有一个概念验证插件,在NERDTree中有一个pull request,我需要编辑显示字符串。

接下来我要做的就是在保存文件时刷新NERDTree缓冲区。我当时认为NERDTree api函数“NERDTreeRender()”就是我所需要的 - 类似于:

autocmd BufWrite * call NERDTreeRender()

可以工作,但它在写入的缓冲区上调用了NERDTreeRender(),而不是NERDTree。有没有办法让bufwrite上的autocmd运行到该特定缓冲区?运行:vim中的缓冲区并没有给我任何迹象表明NERDTree有一个编号的缓冲区。

禁止在写入特定缓冲区时触发autocmd,是否有人有任何其他建议的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以将switchbuf设置为useopen并调用sbuf NERD*

切换到NERDTree缓冲区

类似的东西:

autocmd BufWrite * call DoRender()

function! DoRender()
    set switchbuf+=useopen
    sbuf NERD*
    call NERDTreeRender()
endfunction