使用时完全退出由Syntastic创建的位置列表(lcl)以及主缓冲区:q,:q!或者:wq!在VIM

时间:2010-11-09 13:15:21

标签: vim plugins syntastic

我正在使用Syntastic插件。我有一些文件有一些我无法改变的错误(警告)。当我打开包含错误消息的文件时,我退出文件(缓冲区),按下:q,错误消息仍然可见(另一个缓冲区),所以我必须按:q两次以在编辑文件时完全退出。< / p>

那么,我如何按下:q只有一个包含我的文件的缓冲区和另一个包含Syntastic错误的缓冲区(位置列表)的文件?我搜索了一下,关闭位置列表的命令是:lcl

当我使用:q退出缓冲区时,如果该缓冲区的位置列表处于活动状态,我想用位置列表关闭它,调用:lcl。我正在阅读一些autocmd BufLeaveBufWinLeave,并试图为此创建一个映射,但我不知道两者之间的区别。有人能帮助我吗?

记住,:w, :q, :q!, :wq应该按预期工作。

2 个答案:

答案 0 :(得分:3)

由于lcl工作即使没有错误窗口,您也可以将q映射到lcl和q

cnoremap q<cr> \|lcl\|q<cr>

如所建议的,缩写似乎更好

cabbrev q lcl\|q

(注意\之前的\,没有缩写然后退出)

答案 1 :(得分:1)

我意识到这个问题已经过时了,答案已经被接受了。我尝试使用已接受的答案,但它似乎不再起作用了。

但是,如果其他人遇到此问题,我会从this question找到解决方法。

基本上,使用脚本检查是否有其他剩余的窗口打开,如果剩下的最后一个窗口是位置列表,则退出。

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

我认为这可能不太理想,但在此期间效果还不错。