Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the error type for in errorformat for Vim’s quickfix list?

I’m unsure about the %t format specifier in Vim’s quickfix list. How does it affect the behavior/display of the quickfix buffer?

I tried to find it out with the following test file:

$ cat test.out
foo              Error         1 foo.h            foobar
bar              Error         2 foo.h            foobar
foobar           Warning       3 foo.h            foobar
barfoo           Warning       4 foo.h            foobar

And the following errorformat first:

set errorformat+=%.%#%*\\s%.%#%*\\s%l\ %f%*\\s%m

With this errorformat in place I can use :cgetfile test.out and jump to the line numbers in foo.h, but with the following errorformat:

set errorformat+=%.%#%*\\s%t%.%#%*\\s%l\ %f%*\\s%m

All that has changed is that now I see some spaces after the line numbers in the quickfix buffer, e.g. I see (two spaces after the 1)

foo.h|1  | foobar

instead of

foo.h|1| foobar

So I have two questions:

  1. What is wrong with my errorformat?
  2. What should I see if the error type could be extracted?
like image 235
Andreas F. Avatar asked Dec 09 '10 22:12

Andreas F.


1 Answers

I'm unsure about the %t format specifier in Vim's quickfix list, how does it affect the behavior/display of the quickfix buffer?

It tells the quickfix buffer what type of error a match is (error, warning, or informational). The quickfix buffer will then show that information after the line number and highlight it in a different color. For example, here is a warning and an error:

hosts.cfg|3473 error| Could not add object property
hosts.cfg|3790 warning| Duplicate definition found for host 'mailgateway'

In the quickfix window the word "warning" is in yellow and the word "error" is white on red. In my errorformat I am using %t where the E or W would be in Error or Warning. For example:

%trror: %m in file '%f' on line %l
like image 156
Starfish Avatar answered Oct 20 '22 04:10

Starfish