我有这个代码取自另一个 StackOverflow 用户 Conner,来自这个问题Automatically quit Vim if NERDTree and TagList is the last and only buffers
(我没有选择对这个问题发表评论,所以我唯一的选择是问一个新问题)。
问题是:如果只剩下 NERDTree 和 TagList 两个缓冲区,我该如何关闭 Vim 编辑器(在 Linux Mint 中)?
提供的答案是:
" If only 2 windows left, NERDTree and Tag_List, close vim or current tab
fun! NoExcitingBuffersLeft()
if winnr("$") == 3
let w1 = bufname(winbufnr(1))
let w2 = bufname(winbufnr(2))
let w3 = bufname(winbufnr(3))
if (exists(":NERDTree")) && (w1 == "__Tag_List__" || w2 == "__Tag_List__" || w3 == "__Tag_List__")
if tabpagenr("$") == 1
exec 'qa'
else
exec 'tabclose'
endif
endif
endif
endfun
autocmd BufWinLeave * call NoExcitingBuffersLeft()
但这不能正常工作。每当我关闭最后一个“令人兴奋的”缓冲区(一个非 NERDTree 或非 TagList)时它就会关闭,但每当我尝试从 NERDTree 打开一个新文件时它也会关闭(通过双击“资源管理器”中的文件名) )。
老实说,我不太了解这段代码。我试图弄乱它,但我无法得到我想要的结果。
当我从 NERDTree 资源管理器打开新文件时,如何更改此代码以不关闭?
谢谢你,康纳和社区的其他人!