首页 > 代码库 > VIM 一键编译
VIM 一键编译
"单个文件编译map <F5> :call Do_OneFileMake()<CR>function Do_OneFileMake() if expand("%:p:h")!=getcwd() echohl WarningMsg | echo "Fail to make! This file is not in the current dir! Press <F7> to redirect to the dir of this file." | echohl None return endif let sourcefileename=expand("%:t") if (sourcefileename=="" || (&filetype!="cpp" && &filetype!="c")) echohl WarningMsg | echo "Fail to make! Please select the right file!" | echohl None return endif let deletedspacefilename=substitute(sourcefileename,‘ ‘,‘‘,‘g‘) if strlen(deletedspacefilename)!=strlen(sourcefileename) echohl WarningMsg | echo "Fail to make! Please delete the spaces in the filename!" | echohl None return endif if &filetype=="c" if g:iswindows==1 set makeprg=gcc\ -o\ %<.exe\ % else set makeprg=gcc\ -o\ %<\ % endif elseif &filetype=="cpp" if g:iswindows==1 set makeprg=g++\ -o\ %<.exe\ % else set makeprg=g++\ -o\ %<\ % endif "elseif &filetype=="cs" "set makeprg=csc\ \/nologo\ \/out:%<.exe\ % endif if(g:iswindows==1) let outfilename=substitute(sourcefileename,‘\(\.[^.]*\)‘ ,‘.exe‘,‘g‘) let toexename=outfilename else let outfilename=substitute(sourcefileename,‘\(\.[^.]*\)‘ ,‘‘,‘g‘) let toexename=outfilename endif if filereadable(outfilename) if(g:iswindows==1) let outdeletedsuccess=delete(getcwd()."\\".outfilename) else let outdeletedsuccess=delete("./".outfilename) endif if(outdeletedsuccess!=0) set makeprg=make echohl WarningMsg | echo "Fail to make! I cannot delete the ".outfilename | echohl None return endif endif execute "silent make" set makeprg=make execute "normal :" if filereadable(outfilename) if(g:iswindows==1) execute "!".toexename else execute "!./".toexename endif endif execute "copen"endfunction"进行make的设置map <F6> :call Do_make()<CR>map <c-F6> :silent make clean<CR>function Do_make() set makeprg=make execute "silent make" execute "copen"endfunction
用于学习 转自 vimer.cn 地址http://www.vimer.cn/2009/10/11.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。