Количество VIM / определить количество ошибок в Quickfix - PullRequest
9 голосов
/ 12 октября 2009

Это может звучать глупо, но я не нашел в справке.

Как определить количество ошибок в QuickFix после запуска :make?

Или хотя бы посмотреть, есть ли ошибки, то есть ошибки> 0?

Ответы [ 2 ]

13 голосов
/ 12 октября 2009

Вы можете программно получить список ошибок с помощью 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

Если вы просто хотите получить общее количество, используйте len(getqflist()). например:

:echo len(getqflist())

Если вы просто хотите узнать в интерактивном режиме, :cw откроет список в окне, если будут какие-либо ошибки (и закроет его, если он уже открыт и ошибок нет). Количество строк в этом буфере равно количеству ошибок.

1 голос
/ 12 октября 2009

Вы можете просто использовать функцию getqflist() (см. :help getqflist()):

:echo printf("Have %d errors", len(getqflist()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...