tags:

views:

207

answers:

2

This may sound silly, but I did not find it in the help.

How to determine the number of errors in the QuickFix, after running :make ?

Or at least see if there are any errors, i.e. errors > 0?

+4  A: 

You can programmatically get the list of errors with getqflist():

getqflist()      *getqflist()*
     Returns a list with all the current quickfix errors.  Each
     list item is a dictionary with these entries:
      bufnr number of buffer that has the file name, use
       bufname() to get the name
      lnum line number in the buffer (first line is 1)
      col column number (first column is 1)
      vcol non-zero: "col" is visual column
       zero: "col" is byte index
      nr error number
      pattern search pattern used to locate the error
      text description of the error
      type type of the error, 'E', '1', etc.
      valid non-zero: recognized error message

     When there is no error list or it's empty an empty list is
     returned. Quickfix list entries with non-existing buffer
     number are returned with "bufnr" set to zero.

     Useful application: Find pattern matches in multiple files and
     do something with them: >
      :vimgrep /theword/jg *.c
      :for d in getqflist()
      :   echo bufname(d.bufnr) ':' d.lnum '=' d.text
      :endfor

If you just want the total number, use len(getqflist()). eg:

:echo len(getqflist())

If you just want to know interactively, :cw will open the list in a window if there are any errors (and close it if it's already open and there are no errors). The number of lines in that buffer is the number of errors.

Laurence Gonsalves
+1  A: 

You can just use the getqflist() function (see :help getqflist()):

:echo printf("Have %d errors", len(getqflist()))
too much php