我试图让makeprg和errorformat与VIM和jslint一起工作,但似乎无法让错误格式适合我的生活……我使用的是jslint的nodejs版本,它会产生如下结果:
1 116,9: The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.
for (var k in o)我基本上希望匹配行号、列和错误,并使用当前文件作为文件名。有人知道怎么做吗?
需要说明的是,我正在寻找错误格式以使此命令正常工作。目前我的.vimrc文件有
augroup js
set makeprg=jslint\ %
set errorformat=%E%>%l,%c:%m,%Z
augroup END这就是不起作用( jslint运行良好,但错误格式是错误的)...
发布于 2010-09-16 01:03:17
实际上,今天早些时候我刚刚在我的makeprg中插入了JSLint,自然我需要一些快速修复支持。
我创建了node-jslint的一个分支,它以类似于GCC的格式输出JSLint的错误。efm是:%f:%l:%c:%m。如果你可以使用node.js,我推荐使用node-jslint (特别是如果你正在处理一个node.js/CommonJS项目)。
至于你最初的问题:我不认为%>是必要的。如果删除它没有帮助,可以简单地尝试以下操作:
set efm=%l,%c: %m发布于 2012-01-03 09:22:11
一个旧的线程,但对于任何遇到它的人,比如我自己:
对于通过npm (v0.1.2)安装的当前版本的node-jslint,错误输出如下所示:
filename.js
#1 Missing 'use strict' statement.
y = x // Line 2, Pos 3
#2 Expected 'y' at column 5, not column 3.
y = x // Line 2, Pos 3我使用以下efm来解析错误:
autocmd FileType javascript set efm=%-P%f,
\%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
\%-G%f\ is\ OK.,%-Q发布于 2012-04-15 23:18:29
一个非常老的线程,但这是@dule's excellent answer的后续。这真的只是一个调整,但它也可能对其他人有用(我花了一些时间使用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的了解比几个小时前更多了。)
第二个不同之处在于,我用%A替换了%E,用一种忽略该数字的模式替换了匹配器%n。这本质上是出于美学的原因。使用@dule的方法,您将在quickfix窗口中获得以下输出:
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.https://stackoverflow.com/questions/3713015
复制相似问题