引用 @wangjun403 (11楼)
分享个一键编译运行的函数
函数很长主要是检测quickfix的输出
没有error和warning直接运行
有warning可以选择继续还是去解决
有error就直接跳出quickfix窗口了
function! CompileFile()
if &filetype == 'c' || &filetype == 'cpp'
if &filetype == 'c' | set makeprg=gcc\ -std=c99\ -Wall\ -Wconversion\ -o\ %<.exe\ %
else | set makeprg=g++\ -o\ %<.exe\ %
endif
silent exe "make"
if getqflist() == [] "compile correct and no warning
let l:flag = 0 | silent exe "ccl" | exe "!%<.exe"
else
for l:inx in getqflist()
for l:val in values(l:inx)
if l:val =~ 'error' | let l:flag = 1 | break
elseif l:val =~ 'warning' | let l:flag = 2
else | let l:flag = 0
endif
endfor
if l:val =~ 'error' | break | endif
endfor
endif
if l:flag == 1| exe "cw"
elseif l:flag == 2
let l:select = input('There are warnings! [r]un or [s]olve? ')
if l:select == 'r' | exe "!%<.exe" | exe "cw"
elseif l:select == 's' | exe "cw"
else | echohl ErrorMsg | echo "input error!"
endif
else | exe "cw"
endif
else
echohl ErrorMsg | echo "This filetype can't be compiled !"
endif
echohl None
endfunction
———————————————————————————
@wangjun403 分享的一键编译运行的函数写得真心不错,值得单发一贴分享,虽然我基本不用一键编译,但也忍不住修改了一下……


分享个一键编译运行的函数
函数很长主要是检测quickfix的输出
没有error和warning直接运行
有warning可以选择继续还是去解决
有error就直接跳出quickfix窗口了
function! CompileFile()
if &filetype == 'c' || &filetype == 'cpp'
if &filetype == 'c' | set makeprg=gcc\ -std=c99\ -Wall\ -Wconversion\ -o\ %<.exe\ %
else | set makeprg=g++\ -o\ %<.exe\ %
endif
silent exe "make"
if getqflist() == [] "compile correct and no warning
let l:flag = 0 | silent exe "ccl" | exe "!%<.exe"
else
for l:inx in getqflist()
for l:val in values(l:inx)
if l:val =~ 'error' | let l:flag = 1 | break
elseif l:val =~ 'warning' | let l:flag = 2
else | let l:flag = 0
endif
endfor
if l:val =~ 'error' | break | endif
endfor
endif
if l:flag == 1| exe "cw"
elseif l:flag == 2
let l:select = input('There are warnings! [r]un or [s]olve? ')
if l:select == 'r' | exe "!%<.exe" | exe "cw"
elseif l:select == 's' | exe "cw"
else | echohl ErrorMsg | echo "input error!"
endif
else | exe "cw"
endif
else
echohl ErrorMsg | echo "This filetype can't be compiled !"
endif
echohl None
endfunction
———————————————————————————
@wangjun403 分享的一键编译运行的函数写得真心不错,值得单发一贴分享,虽然我基本不用一键编译,但也忍不住修改了一下……

