linux下
" F5编译和运行C程序,C++程序,Python程序,shell程序,F9 gdb调试
" 请注意,下述代码在windows下使用会报错,需要去掉./这两个字符
" <F5> 编译和运行C
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc
"< F5> 编译和运行C++
map <F5> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc
" <F5> 运行python程序
map <F5> :w<cr>:!python %<cr>
" <F5> 运行shell程序
map <F5> :call CompileRunSH()<CR>
func! CompileRunSH()
exec "w"
exec "!chmod a+x %"
exec "!./%"
endfunc
"<F9> gdb调试
map <F9> :call Debug()<CR>
func! Debug()
exec "w"
exec "!gcc % -o %< -gstabs+"
exec "!gdb %<"
endfunc
或者这样也可写:
windows下
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "! %<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "! %<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
elseif &filetype == 'sh'
:!%
endif
endfunc
"C,C++µÄµ÷ÊÔ
map <F8> :call Rungdb()<CR>
func! Rungdb()
exec "w"
exec "!g++ % -g -o %<"
exec "!gdb %<"
endfunc