2017-06-19 30 views
0

处理错误我有一个解析器输出这样的信息:VIM:错误格式运用于无法理解如何为我的解析器

||  Error: M:\workdir\MyFile.ja: line 38: "Blablabla" has no license declaration 
||  Error: M:\workdir\MyFile.ja: unknown attribute "blabla" 
||  Fatal: M:\workdir\MyFile.ja: not generating output because of 2 earlier errors 

我尝试用下面的错误格式运用于解析它:

let &errorformat=&errorformat . ',' . 'Error: %f: line %l: %m' 
let &errorformat=&errorformat . ',' . 'Error: %f: %m' 
let &errorformat=&errorformat . ',' . 'Fatal: %f: line %l: %m' 
let &errorformat=&errorformat . ',' . 'Fatal: %f: %m' 

但它什么都不匹配。有人能帮我指出我做错了什么吗?

谢谢。


编辑2017年6月21日:我运行:AsyncRun build我的生成命令(这是一个自定义脚本)(使用https://github.com/skywind3000/asyncrun.vim插件)。该插件只是简单地运行该命令并将其输出重定向到quickfix。

症状是quickfix窗口包含消息而不被识别为错误消息。

set errorformat包含我添加的定义。

let &errorformat=&errorformat . ',' . '%*[ ]Error: %f: line %l: %m' 
let &errorformat=&errorformat . ',' . '%*[ ]Error: %f: %m' 
let &errorformat=&errorformat . ',' . '%*[ ]Fatal: %f: line %l: %m' 
let &errorformat=&errorformat . ',' . '%*[ ]Fatal: %f: %m' 

它现在就像一个魅力:其实我需要这种错误格式运用于也匹配前导空格

+0

也张贴在这里:https://vi.stackexchange.com/q/12676/51 – Carpetsmoker

+0

我认为你的errorformat定义看起来不错。我最好的猜测是,quickfix不能像你认为的那样工作。你应该描述你产生问题的所有步骤。 –

回答

0

好!

感谢freenode #vim上的markzen帮助我找出解决方案。