此处略去在windows中配置gcc的方法。默认你已经能够在命令提示符下直接使用gcc了。

其实就是写了一个vimscript的.vim文件,然后在 _vimrc 中使用source命令引用进来。

以下是源代码(OneKeyMake.vim)

----------------------------------------------------------------------------

"这是一个一键执行c或cpp的脚本,用source引入到vimrc即可
"源文件的路径中有空格也没关系
"在插入模式或者normal模式时使用F5一键运行(不自动保存)
"使用Ctrl+F5运行,运行会自动使用:w保存文件
nmap<C-F5> :w<CR>:call Do_OneKeyMake()<CR>
imap<C-F5> <Esc>:w<CR>:call Do_OneKeyMake()<CR>
nmap<F5> :call Do_OneKeyMake()<CR>
imap<F5> <Esc>:call Do_OneKeyMake()<CR>
function Do_OneKeyMake()
    let sF=expand('%:p')
    let oF=expand('%:p:h').'\a.exe'
    let fE=expand('%:e')
    "echo oF
    "echo filereadable(sF)
    if fE!='cpp' && fE!='c'
        echohl WarningMsg | echo '文件扩展名必须是 cpp 或者 c' | echohl None
        return
    endif

if filereadable(oF)
        if delete(oF)
            echohl WarningMsg | echo '无法删除之前生成的可执行文件,可能是没有权限' | echohl None
            return
        endif
    endif
    
    let cmd='cls & g++ -static -Wall "'.sF.'" -o "'.oF.'" && "'.oF.'" &pause'
    silent execute 'normal :'
    silent execute '!'.cmd
    
    if !filereadable(oF)
        echohl WarningMsg | echo '没有生成新的可执行文件,可能编译失败,或者没有权限' | echohl None
        return
    endif
    "本来把编译和运行放到不同窗口的,但是那样可能会有多余的操作
    "下面的命令用于产生执行时的窗口,现已注释掉
    "let cmd='cls & "'.oF.'" &pause'
    "silent execute 'normal :'
    "silent execute '!'.cmd
    
endfunction
----------------------------------------------------------------------------

顺便备份一下我用的样式(mystyle.vim)

"用于个人的一些个性化设定
set number
set tabstop=4
set autoindent
colo slate
set guifont=Consolas\ 12
set fileencodings=utf-8,cp936

"把F3映射成自动调整编码,实际没啥用
nmap<F3> :call ChangeEncoding()<CR>
function ChangeEncoding()
    let encodings=['utf-8','cp936']
    let w:myEncoding=exists('w:myEncoding')?(w:myEncoding+1):0
    let w:myEncoding=(w:myEncoding>=len(encodings))?0:(w:myEncoding)
    let &encoding=encodings[w:myEncoding]
endfunction
----------------------------------------------------------------------------

ps:尝试过gvim打开大文件的速度,发现其表现不如notepad++

最新文章

  1. Entity Framework 数据库初始化的三种方法
  2. SQL编程篇 (二) 定义与流程控制
  3. 12.NFS搭建配置
  4. jQuery选择器和DOM操作——《锋利的jQuery》(第2版)读书笔记1
  5. C开发基础--函数调用栈
  6. 通过批处理文件启动oracle11g服务
  7. .NET 添加/删除Cookie
  8. LCD与ARM,具体
  9. 下载jdk文件后缀是.gz而不是.tar.gz怎么办
  10. 安装Java Cer证书
  11. Java连接数据库(mysql,sqlserver)
  12. iOS 检测文本中的 URL、电话号码等信息
  13. mysql基础之yum安装mysql5.7.18
  14. MicroPython-TPYBoard固件编译教程
  15. POJ - 3268 单源最短路
  16. java并发编程基础 --- 4.1线程简介
  17. Sqlserver tablediff的简单使用
  18. 原生开发小程序 和 wepy 、 mpvue, Taro 对比
  19. ganglia使用nagios告警
  20. GIT 私有仓库 github项目提交失败 master -&gt; master (non-fast-forward)

热门文章

  1. 解析const
  2. [LeetCode] Substring with Concatenation of All Words(good)
  3. ar1020 驱动移植 无效
  4. emmc boot1 boot2 partition
  5. Proxy settings in TortoiseSVN and command line svn client
  6. 内置对象Global和Math对象
  7. dd命令使用详解
  8. 浅谈负载均衡SLB、CLB和综合应用
  9. iOS 开发知识小集(1)
  10. MongoDB概念解析