快速修复位置列表 linter window 保持打开状态

Quickfix Location List linter window stays open

我喜欢 linters 和 quickfix window,但有时我不想修复任何东西,只想退出文件。当前的问题是当我关闭文件时,quickfix window 保持打开状态。我知道我可以使用 :qa 同时退出,但我经常忘记这样做。

我花了几个小时试图弄清楚如何关闭 quickfix 缓冲区,如果它是唯一打开的window/buffer,但没有运气。

还有谁知道如何更好地处理这个问题?

该功能是我的 vim-qf 插件的一部分,但您并不真的需要一个成熟的插件来完成这样一项平凡的任务。实际上,多年来互联网上流传着许多片段。这是一个:

augroup MyGroup
    autocmd!
    if exists('##QuitPre')
        autocmd QuitPre * if &filetype != 'qf' | silent! lclose | endif
    endif
augroup END

基本上,它关闭当前 quickfix/location window 如果它是当前标签页中最后剩余的 window。

参考:

:help :augroup
:help :autocmd
:help exists()
:help QuitPre
if version >= 700
" automatically close quickfix if it's the only window left
autocmd WinEnter * if winnr('$') == 1 && &buftype == "quickfix" | quit | endif
endif