Vim:错误格式匹配所有内容

str*_*ger 6 vim errorformat

我试图匹配以下错误efm:

AssertionError: 1 == 2
    at /home/strager/projects/blah/blah.js:13:37
Run Code Online (Sandbox Code Playgroud)

错误消息可以是任何内容(即它并不总是匹配AssertionError: .*.*Error: .*格式).一般格式是:

errormessage
    at filename:line:column
Run Code Online (Sandbox Code Playgroud)

我的问题是错误消息匹配任何行; 我需要将错误消息限制为仅一行,并且只有在匹配的"at"行后才匹配.

我尝试过以下方法efm:

set efm=%Z\ \ \ \ at\ %f:%l:%c,%E%m
" %Z    at %f:%l:%c,%E%m
Run Code Online (Sandbox Code Playgroud)

这几乎可以工作,但除了错误之外,它还匹配状态行(例如错误之前和之后的非错误).如何强制%E%m ... %Z总共只有两行(一行用于错误消息,一行用于at行)?makeprg如果需要,我可以访问标准的UNIX工具.

too*_*php 0

关于什么 ...

set efm=%E%m,%Z\ \ \ \ at\ %f:%l:%c
Run Code Online (Sandbox Code Playgroud)