I read the docs, but got even more confused.
I have the following error generated by the compiler:
rot;
^
"cpp\c1.cpp", line 13: error(114): identifier
"rot" is undefined
1 error detected in the compilation of "c1.cpp".
I know how to detect the line where the error line is given, but I get loads of extra useless info in my errorlist, and the error message is split in two lines, whcih i would prefer to merge.
My starting errorformat is:
:set efm=\"%f\"\\,\ line\ %l:\ error(%n):\ %m
Since we are at it, is there a quick way of testing the efm without resorting to run make all the time?
First of all, I talk about debugging. Unfortunately, there's no particularly easy way of doing it, but one useful possibility is to run make and spit the output into a file and then:
Regarding making the errorformat, this does require a bit of trial and error. You can use %A, %C and %Z for multiline messages and you can use %-G to ignore stuff. The order is very important and note that sometimes the %C or even %Z come before the %A! In your case, you may be able to get somewhere with the efm below. I tend to use
let &efm =
andlet &efm .=
rather than set as you don't have to escape every space or quotation mark and you can build it up gradually. It's also much more readable.