原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html

使用gvim在windows环境下搭建简单的IDE环境可以参见:http://my.oschina.net/u/146511/blog/50717

该文章讲的很详细,而且给出了各种辅助插件的下载链接。

这里主要讲如何在gvim环境下通过快捷键编译程序。

如果需要编译C/C++程序,首先将微软的cl 编译器 加入到环境变量中,也就是说在cmd 模式下能够使用cl。

这里就首先来讲一下如何将 cl 加入到环境变量中。

如果是使用VS2010及更低版本需要这样做:我的电脑->属性->高级系统设置->环境变量

新建:INCLUDE 、LIB、PATH 三个变量,填入下面的值:

假设我的VS2010的安装目录是D:\program files (x86)\Microsoft Visual Studio 10.0\

PATH:D:\program files (x86)\Microsoft Visual Studio 10.0\VC\bin;D:\program files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;

LIB:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;D:\program files (x86)\Microsoft Visual Studio 10.0\VC\lib;

INCLUDE:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include;D:\program files (x86)\Microsoft Visual Studio 10.0\VC\include;

注意:每一项之间使用 ‘;’ 隔开。

我现在装的是VS11 beta版,上面的方式就不能成功了。需要这样做(这里我的VS11 beta是安装在C盘的默认路径):

INCLUDE: C:\Program Files\Microsoft Visual Studio 11.0\VC\include;C:\Program Files\Windows Kits\8.0;C:\Program Files\Windows Kits\8.0\Include\shared;C:\Program Files\Windows Kits\8.0\Include\um;C:\Program Files\Windows Kits\8.0\Include\winrt

LIB: C:\Program Files\Microsoft Visual Studio 11.0\VC\lib;C:\Program Files\Windows Kits\8.0;C:\Program Files\Windows Kits\8.0\Lib\win8\um\x86

PATH: C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 11.0\VC\bin;D:\Program Files\Python2.7

这样的方式增加了环境变量之后再cmd中就可以使用cl 编译器了(这里也一并增加了Python的环境变量)。

现在cl 已经可以用,现在我们需要修改gim安装文件夹中的 vimrc 这个文件(在vimrc 文件中加入):

" 编译源文件
func! CompileCode()
exec "w"
if &filetype == "c"
   exec "!cl %<.c "
elseif &filetype == "cpp"
   exec "!cl %<.cpp "

elseif &filetype == "python"
  exec "!python %<.py"

endif
endfunc

" 运行可执行文件
func! RunCode()
exec "w"
if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell"
exec "! %<.exe"
elseif &filetype == "python"
exec "!python %<.py"
endif
endfunc

" Ctrl + C 一键保存、编译
map <c-c> :call CompileCode()<CR>
imap <c-c> <ESC>:call CompileCode()<CR>
vmap <c-c> <ESC>:call CompileCode()<CR>

Ctrl + R 一键保存、运行
map <c-r> :call RunCode()<CR>
imap <c-r> <ESC>:call RunCode()<CR>
vmap <c-r> <ESC>:call RunCode()<CR>

注:加了‘ " ’的行是注释了的行

这样就可以编译和运行c/c++/Python 文件了。

增加Python的环境变量如上面提到的方式就可以了,但是如果想在命令行直接运行.py文件的话需要再修改另一个环境变量(在系统变量中)PATHEXT: 加入.py 和 .pym

如果要支持中文,需要使用utf-8编码格式。可以在.py文件的开头加入: # -*- coding: utf-8 -*-

加入 

# -*- coding: utf-8 -*-

的这个操作也可以再vimrc中增加如下句子来实现:

map <c-p> ggi# -*- coding: utf-8 -*-<CR><ESC>:w<CR>
imap <c-p> <ESC>ggi# -*- coding: utf-8 -*-<CR><ESC>:w<CR>
vmap <c-p> <ESC>ggi# -*- coding: utf-8 -*-<CR><ESC>:w<CR>

然后在使用ctrl + r 运行前,先按 ctrl + p 就可以自动加上这句话了。

转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)的更多相关文章

  1. 使用code::blocks搭建objective-c的IDE开发环境 支持 @interface

    网上有许多的关于 <使用code::blocks搭建objective-c的IDE开发环境>的文章. 大多是写了一个Helloworld 就结束了,今天试了试 添加了一个 @interfa ...

  2. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  3. Windows下SVN服务器搭建方法整理(apache)

    http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...

  4. 转载:Windows下三分钟搭建Shadowoscks服务器端

    Windows下三分钟搭建Shadowoscks服务器端 之前在V2EX上有人问为啥没人做个在Windows上一键运行Shadowsocks服务器端的程序,我只想说……这是因为没人关注我的libQtS ...

  5. windows下sqli-labs的搭建及学习(POST篇)

    windows下sqli-labs的搭建及学习(GET篇): http://blog.csdn.net/sherlock17/article/details/64454449 Less-11:基于错误 ...

  6. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...

  7. windows下如何快速搭建web.py开发框架

    在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方 ...

  8. 在windows下如何快速搭建web.py开发框架

    在windows下如何快速搭建web.py开发框架 用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方 ...

  9. windows下的gvim和emmet 下载和安装 + "omnifunc is not set" solution?

    注意几个地方: 引导键是ctrl-y, 其他就是实际的操作键了, 如: n下一个插入点, N是上一个插入点(不是p), ctrl-y + i是自动为图片添加宽度和高度尺寸, 要点是要把光标移动到 im ...

随机推荐

  1. bzoj3675: [Apio2014]序列分割

    留坑 为什么别人家的斜率优化跟我一点都不一样! 为什么斜率都要变成正的... 为什么要那么推式子 为什么不能直接做啊..... 为什么不把0去掉去秒WA啊 为什么叉积去了0也过不了啊 woc啊 #in ...

  2. .net 4中的pInvokeStackImbalance MDA默认是开启的

    今天把我之前发的一个小工具FreeEverything(基于everything的一个简易磁盘清理工具)升级到了.net framework 4.5,并且去掉了对mvvmlight的依赖.结果在测试运 ...

  3. 【Android - MD】之FloatingActionButton的使用

    FloatingActionButton(FAB) 是 Android 5.0 新特性--Material Design 中的一个控件,是一种悬浮的按钮. FloatingActionButton 是 ...

  4. Linq to Object实现分页获取数据

    最后调用的CSharp代码可以是: int totalcount = dboperator.Customers.Count(); //总记录数 int pagesize = 100;//每页显示数 / ...

  5. myeclipse6.0下载及注冊码

    myeclipse6.0 下载地址.官方下载地址: http://www.myeclipseide.com/module-htmlpages-display-pid-4.html 本地快速下载地址: ...

  6. 每日一linux命令 du [系列]

    http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html   Linux du命令也是查看使用空间的,但是与df命令不同的是Linux  ...

  7. linux 最大文件描述符fd

    使用四种框架分别实现百万websocket常连接的服务器 著名的 C10K 问题提出的时候, 正是 2001 年.这篇文章可以说是高性能服务器开发的一个标志性文档,它讨论的就是单机为1万个连接提供服务 ...

  8. hdu 4622 Reincarnation(后缀数组)

    hdu 4622 Reincarnation 题意:还是比较容易理解,给出一个字符串,最长2000,q个询问,每次询问[l,r]区间内有多少个不同的字串. (为了与论文解释统一,这里解题思路里sa数组 ...

  9. js原型继承

    原型链: Object(构造函数) object(类型(对象)) var o = {}; alert(typeof o); //结果是object alert(typeof Object); //结果 ...

  10. javascript新的原生态API

    以下是最新的w3c标准的javascript,目前支持运行在firefox, chrome,IE9以上版本的浏览器 参考资料:https://developer.mozilla.org/ru/docs ...