CompileRunGcc()
exec "wa"
exec "!gcc % -o %< -g"
exec "! ./%<"
endfunc
CompileRunGxx()
exec "wa"
exec "!g++ % -o %< -g"
exec "! ./%<"
endfunc
if has("autocmd")
;自动补全( (如果文件为C或者C++)
autocmd FileType c,cpp inoremap ( ()<esc>:let leavechar=")"<cr>i
; 自动补全{结构 (如果文件为C或者C++)
autocmd FileType c,cpp inoremap { {<esc>o}<esc>:let leavechar="}"<cr>O
; 自动补全main函数结构 (如果文件为C或者C++)
autocmd FileType c,cpp inoremap main int main(int argc, char *argv[])<cr>{<cr>}<esc>O
; 自动补全for结构 (如果文件为C或者C++)
autocmd FileType c,cpp inoremap for for (;;)<cr>{<cr><cr>}<esc>3kf;i
; 自动补全while结构 (如果文件为C或者C++)
autocmd FileType c,cpp inoremap while while ()<cr>{<cr><cr>}<esc>3kf)i
;自动补全if、else、elseif结构 (如果文件为C或者C++)
autocmd FileType c,cpp inoremap if if ()<cr>{<cr><cr>}<esc>3kf)i
autocmd FileType c,cpp inoremap else<cr> else<cr>{<cr>}<esc>O
autocmd FileType c,cpp inoremap else\ if else if ()<cr>{<cr><cr>}<esc>3kf)i
;如果文件为C,则按f3加入 #include
autocmd FileType c nnoremap <F3> #include
;按f4编译单个C或者C++文件
autocmd FileType c map <F4> :call CompileRunGcc()<CR><CR>
autocmd FileType cpp map <F4> :call CompileRunGxx()<CR><CR>
; 如果文件为C++,则按f3加入 #include
;using namespace std;
autocmd FileType cpp nnoremap <F3> #include using namespace std;
;补全printf结构
autocmd FileType c,cpp inoremap printf printf("");<esc>2hi
endif
|