set makeprg=make set errorformat=%f:%l:%c:\ %m let g:gdb_executable = 'bidi' let g:gdb_arguments = '-f tests/test.lua' nnoremap m :call LocalMake() nnoremap r :execute '!./' . g:gdb_executable . ' ' . g:gdb_arguments nnoremap bm :execute '!make && gdb -ex "break main" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments nnoremap bl :execute '!make && gdb -ex "break ' . line('.') . '" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments function! LocalMake() silent make " Filter non valid errors out of quicklist. let qfl = getqflist() let filtered = filter(copy(qfl), {_, entry -> entry.valid == 1}) call setqflist(filtered, 'r') redraw! if len(filtered) > 0 copen else cclose endif endfunction