2012-04-26 52 views
3

我正在爲NERDTree開發一個插件,我詢問了關於here的一個插件。可能訪問vimscript中的NERDTree緩衝區?

我有一個概念證明插件工作在Githubpull request在NERDTree與我需要編輯顯示字符串的鉤子。

接下來我想要工作的是刷新NERDTree緩衝區,每當一個文件被保存。我在想,在NERDTree API函數「NERDTreeRender()」將是我所需要的 - 是這樣的:

autocmd BufWrite * call NERDTreeRender() 

的工作,但它已寫入緩衝區稱爲NERDTreeRender(),而不是NERDTree一個。有沒有辦法在緩衝區中運行bufwrite的autocmd?運行:vim中的緩衝區不會給我任何跡象表明NERDTree不幸有一個編號的緩衝區。

禁止在寫入到特定緩衝區時觸發autocmd,沒有人有任何其他建議的方式來解決這個問題嗎?

回答

1

你可以通過設置switchbufuseopen和呼叫切換到NERDTree緩衝sbuf NERD*

喜歡的東西:

autocmd BufWrite * call DoRender() 

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