为csslint消息找到vim efm

时间:2011-06-16 01:26:54

标签: css vim lint csslint

使用新发布的csslint,我想尝试将其挂钩到vim作为.css文件的makefile。我很难让多行错误格式适用于输出。

到目前为止,我最好的结果是:

au BufRead *.css set makeprg=csslint\ %
au BufRead *.css set errorformat=%A%f:,%C%n:\ warning\ at\ line\ %l\,\ col\ %c,%C%m,%C%.%#,%C%.%#

虽然没有得到正确的行/列数。我在quickfix窗口中输出了这个输出:

|| csslint: There are 33 errors and warnings in bookie.css.
|| 
bookie.css||  1: warning Too many font-size declarations (13), abstraction needed.
bookie.css||  2: warning at line 3, col 3 Rule is empty. BODY {
bookie.css||  3: warning at line 12, col 12 Values of 0 shouldn't have units specified. padding: .5em 0em;
bookie.css||  4: warning at line 13, col 13 Values of 0 shouldn't have units specified. margin: 0em;
...

csslint的格式为:

csslint: There are 33 errors and warnings in bookie.css.

bookie.css:
1: warning
Too many font-size declarations (13), abstraction needed.

bookie.css:
2: warning at line 3, col 3
Rule is empty.
BODY {

有人看到我的efm出了什么问题?或者有可能有用的东西?我试图不去编写另一个解析脚本来清理格式。谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

我只是commited a CSS syntax-checker to Syntastic plugin, using CSS Lint。只需从GitHub和Syntastic version获取最新的install CSS Lint CLI tool,您就可以了。

请注意,CSS Lint的警告/错误格式非常不存在,但我写的插件处理得非常好。我希望将来能有所改善。

答案 1 :(得分:1)

你需要使用双反斜杠来转义Vim错误格式中的逗号。

答案 2 :(得分:1)

使用vim的错误格式是一场名副其实的噩梦。通常我会在shell中为vim重新编写 lint 输出,虽然使用--format=compact开关,但幸运的是它可以使用。

set makeprg=csslint\ --format=compact\ %
set errorformat=%f:\ line\ %l\\,\ col\ \%c\\,\ %m

来源:https://github.com/kaihendry/vim-html5/blob/master/ftplugin/css.vim