zoukankan      html  css  js  c++  java
  • 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

    没有梦想,何谈远方
  • 相关阅读:
    HttpClient入门三
    Centos常用命令之:压缩与解压缩
    Centos常用命令之:搜索
    Centos常用命令之:ln
    Centos常用命令之:VI
    HttpClient入门二
    NX二次开发-UFUN确定两个向量在指定的公差内是否相等(二维向量)UF_VEC2_is_equal
    NX二次开发-UFUN确定两个向量在指定的公差内是否相等(三维向量)UF_VEC3_is_equal
    NX二次开发-NXOPEN C#UF创建块theUfSession.Modl.CreateBlock1
    NX二次开发-NXOpen C# UF函数例子目录【更新日期2020.7.21】
  • 原文地址:https://www.cnblogs.com/zyue/p/3885180.html
Copyright © 2011-2022 走看看