我正在研究NERDTree的插件,我问过here。
我在Github上有一个概念验证插件,在NERDTree中有一个pull request,我需要编辑显示字符串。
接下来我要做的就是在保存文件时刷新NERDTree缓冲区。我当时认为NERDTree api函数“NERDTreeRender()”就是我所需要的 - 类似于:
autocmd BufWrite * call NERDTreeRender()
可以工作,但它在写入的缓冲区上调用了NERDTreeRender(),而不是NERDTree。有没有办法让bufwrite上的autocmd运行到该特定缓冲区?运行:vim中的缓冲区并没有给我任何迹象表明NERDTree有一个编号的缓冲区。
禁止在写入特定缓冲区时触发autocmd,是否有人有任何其他建议的方法来解决这个问题?
答案 0 :(得分:1)
您可以将switchbuf
设置为useopen
并调用sbuf NERD*
类似的东西:
autocmd BufWrite * call DoRender()
function! DoRender()
set switchbuf+=useopen
sbuf NERD*
call NERDTreeRender()
endfunction