Я использую пользовательскую функцию (в настоящее время находящуюся в .vimrc), а не: make или другой инструмент командной строки для компиляции / проверки моего редактируемого в настоящее время файла на наличие ошибок. Как это:
function! CompileMyCode(...)
set errorformat=Error:\ %m\\,\ in\ line\ %l
let l:output = "Error: bad code!, in line 9"
return l:output
endfunction
command! -nargs=* CompileMyCode :call CompileMyCode(<f-args>)
при использовании новой команды в командном режиме окно ошибок не отображается.
:CompileMyCode | cwindow
Что я делаю не так?
Edit:
Я теперь попробовал следующее, которое также не открывает никакое окно.
function! CompileMyCode(...)
set errorformat=Error:\ %m\\,\ in\ line\ %l
let l:output = "Error: bad code!, in line 9"
" I tried both of the following lines separately
cexpr l:output
call setqflist([l:output])
endfunction
Предлагаемые команды cexpr
и setqflist()
неправильно открывают окно в моем примере. Может быть, кто-нибудь может предложить полное решение?
Редактировать 2:
Основная проблема решена. Вот мой текущий код:
let l:result = expand("%").'|8| errortext'
cexpr [ l:result, l:result ]
caddexpr ''
cwindow
В этом примере соблюдается формат ошибок по умолчанию, который, похоже, поддерживает vim. Когда cexpr
выводит фактическую ошибку и использует errorformat
, cwindow
, похоже, игнорирует это.
Тем не менее, я все равно хотел придерживаться формата ошибок по умолчанию в выводе, не полагаясь на пользовательский errorformat
Спасибо за ваши ответы!