1

我有一个函数来构建我的 tex 文件,如果在编译过程中出现错误,它将打开 quickfix 窗口。但是,如果遇到警告,quickfix 窗口将保持关闭。出现警告时如何修改打开快速修复窗口的功能?

function! CompileTex()
    exec "lcd %:h"     
    set makeprg=arara\ -v
    silent make %

    if v:shell_error
        copen
    else
        cclose
        redraw
        echon "successfully compiled"
    endif
endfunction

如果我手动打开 quickfix 窗口,它会显示一个警告,但我想自动执行此操作。

4

1 回答 1

2

您正在使用'makeprg'的退出状态 ( v:shell_error) 来确定是否打开快速修复窗口。如果仅发生警告,该工具可能会返回成功(0)。

更改条件以在捕获项目时打开快速修复窗口(注意:不一定是警告,因为您需要额外检查;返回的元素getqflist()有一个type属性):

if ! empty(getqflist())
    copen
...
于 2013-06-28T15:32:57.303 回答