当前位置: 首页 > news >正文

在VIM中添加一键编译和一键运行

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

~/.vimrc

func! CompileGcc()
    exec "w"
    let compilecmd="!gcc "
    let compileflag="-o %< "
    if search("mpi\.h") != 0
        let compilecmd = "!mpicc "
    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
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

func! RunPython()
        exec "!python %"
endfunc
func! CompileJava()
    exec "!javac %"
endfunc


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

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

map <F5> :call CompileCode()<CR>
imap <F5> <ESC>:call CompileCode()<CR>
vmap <F5> <ESC>:call CompileCode()<CR>

map <F6> :call RunResult()<CR>

转载于:https://my.oschina.net/u/156529/blog/199176

相关文章:

  • baidumap demo(二)
  • css3中定义required,focus,valid和invalid样式
  • C#控制定位Word光标移动到任意行或者最后一行,取得光标位置等操作
  • Linux-ip配置
  • c#工厂模式与抽象工厂模式
  • 江南style之---黄山
  • Linux服务器操作系统基础篇
  • 网卡及MAC和PHY的区别
  • 终端I/O之终端标识
  • Hadoop中MapReduce获取命令行参数例子(11)
  • 得到Revit子窗体
  • linux命令行抓取网页快照-(xvfb+CutyCapt)
  • 在eclipse里的 flex 没有可视化的编辑
  • iOS的动态代理模式的实现
  • 关于volatile
  • 2017前端实习生面试总结
  • java中的hashCode
  • JS 面试题总结
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • SSH 免密登录
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 警报:线上事故之CountDownLatch的威力
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 正则与JS中的正则
  • AI算硅基生命吗,为什么?
  • 阿里云服务器购买完整流程
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $().each和$.each的区别
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (备忘)Java Map 遍历
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)树状数组
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • **CI中自动类加载的用法总结
  • . Flume面试题
  • .htaccess配置常用技巧
  • .net mvc部分视图
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @ConditionalOnProperty注解使用说明
  • @Query中countQuery的介绍
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [c#基础]DataTable的Select方法
  • [C++][数据结构][算法]单链式结构的深拷贝