• 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

    没有梦想,何谈远方
  • 相关阅读:
    JavaWeb(二)会话管理之细说cookie与session
    JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
    JavaWeb(一)Servlet中的request与response
    JavaWeb(一)Servlet中的ServletConfig与ServletContext
    JavaWeb(一)之细说Servlet
    OOAD-设计模式(一)概述
    异常处理升级版
    MySQL优化原理
    hadoop 有那些发行版本
    centos7 安装搜狗输入法
  • 原文地址:https://www.cnblogs.com/zyue/p/3885180.html
Copyright © 2020-2023  润新知