3

我正在为我在这里询问的 NERDTree 开发一个插件。

我有一个在Github上运行的概念证明插件和一个到 NERDTree 的拉取请求,其中包含我需要编辑显示字符串的钩子。

下一件我想做的事是在保存文件时刷新 NERDTree 缓冲区。我在想 NERDTree api 函数“NERDTreeRender()”将是我所需要的——比如:

autocmd BufWrite * call NERDTreeRender()

会起作用,但它在写入的缓冲区上调用了 NERDTreeRender(),而不是 NERDTree。有没有办法让自动命令在 bufwrite 上运行到该特定缓冲区?不幸的是,在 vim 中运行 :buffers 并没有给我任何 NERDTree 有编号缓冲区的迹象。

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

4

1 回答 1

1

您可以通过设置并调用switchbuf来切换到 NERDTree 缓冲区useopensbuf NERD*

就像是:

autocmd BufWrite * call DoRender()

function! DoRender()
    set switchbuf+=useopen
    sbuf NERD*
    call NERDTreeRender()
endfunction
于 2012-05-01T08:12:56.213 回答