Vim配置(Vim编译运行)

内容参考自:
http://blog.chinaunix.net/uid-21202106-id-2406761.html

这里因为我使用C++比较多,所以我在这里写一下C++的,其实C也是一样的。

首先我们写下这个函数,表示编译G++

func! CompileGpp()
    exec "w"
    let compilecmd="!g++ "
    let compileflag="-o %< "
    if search("mpi\.h") != 0
        let compilecmd = "!mpic++ "
    endif
    if search("glut\.h") != 0
        let compileflag .= " -lglut -lGLU -lGL "
    endif
    if search("cv\.h") != 0
        let compileflag .= " -lcv -lhighgui -lcvaux "
    endif
    if search("omp\.h") != 0
        let compileflag .= " -fopenmp "
    endif
    if search("math\.h") != 0
        let compileflag .= " -lm "
    endif
    exec compilecmd." % ".compileflag
endfunc

如果我们的Vim需要编译运行不同的语言,那么我们可以写一个判断来实现:
CompileGpp其实就是编译C++的意思。

func! CompileCode()
        exec "w"
        if &filetype == "cpp"
                exec "call CompileGpp()"
        elseif &filetype == "c"
                exec "call CompileGcc()"
        elseif &filetype == "python"
                exec "call RunPython()"
        elseif &filetype == "java"
                exec "call CompileJava()"
        endif
endfunc

然后我们编译之后生成exe文件,我们需要运行它。
(注意在原作者中这段代码,我直接拿过来实现是出错了的,出错提示.既不是内部也不是外部的什么的。)
我们只需要把.去掉就好了。

func! RunResult()
        exec "w"
        if search("mpi\.h") != 0
            exec "!mpirun -np 4 %<"
        elseif &filetype == "cpp"   
            exec "call CompileGcc()"
            exec "! %<"
        elseif &filetype == "c"
            exec "! %<"
        elseif &filetype == "python"
            exec "call RunPython"
        elseif &filetype == "java"
            exec "!java %<"
        endif
endfunc

我们为了方便,就直接设置编译运行了。快捷键F9。

map  :call RunResult()
imap  :call RunResult()

你可能感兴趣的:(Vim配置(Vim编译运行))