语法关闭错误 window 和原始文件 window

Syntastic close error window and original file window

我已经从 GitHub 安装了 Syntastic,我正在尝试使用 Syntastic 检查 perl 语法错误(并计划在短时间内用于 Python)。当我使用':quit' 或':q' 时,只有原始文件window 关闭。错误window 没有关闭。下面是我的 .vimrc 文件的片段:

execute pathogen#infect()  
set statusline+=%#warningmsg#  
set statusline+=%{SyntasticStatuslineFlag()}  
set statusline+=%*  
let g:syntastic_perl_checkers = ['perl']  
let g:syntastic_python_checkers = ['pylint']  
let g:syntastic_enable_perl_checker = 1  
let g:syntastic_always_populate_loc_list = 1  
let g:syntastic_auto_loc_list = 1  
let g:syntastic_check_on_open = 1

由于我是 vim 脚本编写的新手,我想知道如何关闭 windows、错误 window 和原始文件 window,当我在原始文件 window 处于活动状态时使用 ':quit' 或 ':q'。

这是正常的 Vim 行为;它与 Syntastic 无关。 quickfix or location 列表 windows 可能包含对其他文件的引用,所以不确定是否要完全离开 Vim 从原始 window.

退出时

最简单的解决方案是使用 :qa(全部退出)而不是 :q。由于错误 window 不包含未持久化的更改,因此这是安全的,不需要确认。

如果您对不得不考虑这个感到恼火,您可以使用 Vim 的脚本功能来改变它的行为:

:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif

这会检查 window 的每次更改是否只剩下一个 window,如果那个是快速修复/位置列表,它会退出 Vim。

试试下面的命令:

:lclose

根据Syntastic help,关闭语法错误window的命令是:

:SyntasticReset