一个非常古老的线程,但这是@dule 出色答案的后续。这实际上只是一个调整,但它可能对其他人也有用(我花了一些时间在 TFM 上解决它,所以为什么不分享呢?):
setlocal makeprg=jslint\ %
setlocal errorformat=%-P%f,
\%A%>%\\s%\\?#%*\\d\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
\%-G%f\ is\ OK.,%-Q
有两个区别,都在第三行。首先,我将单个空格的初始硬编码匹配替换为匹配零个或一个空格的模式(即,使空格可选)。我不得不这样做,因为来自以下输出jslint
:
... First 8 errors trimmed
#9 Expected '$' at column 9, not column 7.
$('img#placeholder').attr('src', pic); // Line 15, Pos 7
#10 Expected '$' at column 9, not column 7.
$('img#placeholder').attr('alt', desc) // Line 16, Pos 7
仔细看,你会看到的。对于错误 1-9,行首有一个空格。对于 10...n,没有空格。一件小事,但这意味着 quickfix 窗口对于错误 10 及更高版本无法正常工作。啊。(顺便说一句,我确实考虑过答案“不要在任何给定的 JS 文件中犯超过 9 个错误,但这似乎有点过于“摇尾巴”。而且,现在我比几个小时前知道的更多scanf
.)
第二个区别是我用一个模式替换%E
了%A
和匹配器%n
以忽略该数字。这主要是出于审美原因。以@dule 的方式进行操作,您会在快速修复窗口中获得以下输出:
showPic.js|5 col 7 error 1| Expected 'event' at column 9, not column 7.
showPic.js|9 col 7 error 2| Expected 'var' at column 9, not column 7.
我不想在那里计算错误,也不需要提醒他们都是错误——我知道。所以使用%A
,你会得到这个更简单的输出:
showPic.js|5 col 7| Expected 'event' at column 9, not column 7.
showPic.js|9 col 7| Expected 'var' at column 9, not column 7.