合成关闭错误窗口和原始文件窗口

时间:2015-03-24 18:46:39

标签: vim syntastic

我已经从GitHub安装了Syntastic,我尝试使用Syntastic来检查perl语法错误(并计划在短时间内使用Python)。当我使用':退出'或者':q',只关闭原始文件窗口。错误窗口未关闭。以下是我的.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脚本非常新,我想知道如何关闭窗口,错误窗口和原始文件窗口,当我使用':quit'或者':q'原始文件窗口处于活动状态。

3 个答案:

答案 0 :(得分:4)

这是正常的Vim行为;它与Syntastic无关。 quickfix 位置列表窗口可能包含对其他文件的引用,因此当您从原始窗口退出时,您不确定是否要完全离开Vim。

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

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

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

这会检查窗口的每次更改是否只剩下一个窗口,如果那个窗口是quickfix / location列表,它会退出Vim。

答案 1 :(得分:4)

尝试以下命令:

:lclose

答案 2 :(得分:3)

根据Syntastic help,关闭Syntastic错误窗口的命令是:

:SyntasticReset