我使用的c++编译器(由ant启动)会产生不同格式的错误。例如:
apply /localdev/foo.cc:10:29: error: foo.h:没有这样的文件或目录
(让我们称之为A格式)
格式如下:
应用/localdev/foo.cc:307:错误:预期';‘在'std’之前
(让我们称之为B格式)
注A格式有一个额外的列说明符。
我正在尝试创建一个将两者匹配的vim错误格式。
我有:
设置errorformat=\ %#apply\ %f:%1:%c:\错误:\ %m 设置errorformat+=\ %#apply\ %f:%l:\ error:\ %m
但我似乎不能让Vim和B格式相匹配。
我知道错误格式本身是正确的,因为如果我注释掉第一个错误格式设置,我可以匹配错误格式B。如果我注释掉第二个错误格式设置,我可以匹配错误格式A。
注意,如果我反转错误格式设置,那么当Vim遇到错误格式A时,它尝试打开一个名为"/localdev/foo.cc:10“的文件,当然找不到这个文件。(看起来vim有一个贪婪的匹配算法,并且匹配文件的字符串也包括行号(在本例中)。
什么是正确的错误格式设置,将匹配格式A和格式B?
我查看了互联网和vim文档,寻找使%c“可选”的方法,但我没有找到这个秘密。
谢谢。
发布于 2015-08-21 11:49:02
你可以这样做:
let &errorformat =
\ '%\s%#[apply] %f:%l:%c: %trror: %m,' .
\ '%\s%#[apply] %f:%l: %trror: %m'https://stackoverflow.com/questions/32130190
复制相似问题