在vimscript中访问NERDTree缓冲区是否可行?

3
我正在开发一个针对NERDTree的插件,关于此我在这里提问过:here
我已经在Github上创建了一个概念证明插件,并向NERDTree提交了pull request,其中包含我需要编辑显示字符串的钩子。
接下来,我想要实现的是每当文件保存时刷新NERDTree缓冲区。我认为NERDTree api函数“NERDTreeRender()”就足够了,代码如下:
autocmd BufWrite * call NERDTreeRender()

如果调用NERDTreeRender()函数,会在已写入的缓冲区上运行,而不是在NERDTree上运行。有没有办法在bufwrite时运行autocmd以针对特定的缓冲区?在vim中运行:buffers并没有给我任何关于NERDTree有编号缓冲区的指示。

除了在写入特定缓冲区时触发autocmd之外,是否有其他建议的方法可以解决这个问题?

1个回答

1

您可以通过将switchbuf设置为useopen并调用sbuf NERD*来切换到NERDTree缓冲区。

类似于:

autocmd BufWrite * call DoRender()

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接