gpt4 book ai didi

linux - 如果 NERDTree 和 TagList 是仅剩的 2 个缓冲区,则自动退出 Vim

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:35 25 4
gpt4 key购买 nike

我从另一个 StackOverflow 用户 Conner 那里获取了这段代码,来自这个问题 Automatically quit Vim if NERDTree and TagList are 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 资源管理器打开一个新文件时,如何更改此代码以使其不关闭?

谢谢您,Conner 和社区的其他成员!

最佳答案

从 Taglist 手册中,放入你的 .vimrc 文件

let Tlist_Exit_OnlyWindow=1

我不使用 NERDTree,但你可以通过以下方式成功

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif

关于linux - 如果 NERDTree 和 TagList 是仅剩的 2 个缓冲区,则自动退出 Vim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com