sign define hierr linehl=MakeError augroup errormarker autocmd QuickFixCmdPost make call SetErrorMarkers() augroup END function! s:SetErrorMarkers() sign unplace * let l:positions = {} for l:d in getqflist() if (l:d.bufnr == 0 || l:d.lnum == 0) continue endif let l:key = l:d.bufnr . l:d.lnum if has_key (l:positions, l:key) continue endif let l:positions[l:key] = 1 execute "sign place " . l:key . " line=" . l:d.lnum . " name=" . \ "hierr" . " buffer=" . l:d.bufnr endfor endfunction