原文来自于: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. NIO与普通IO文件读写性能对比

    最近在熟悉java的nio功能.nio采用了缓冲区的方式进行文件的读写,这一点更接近于OS执行I/O的方式.写了个新旧I/O复制文件的代码,练练手,顺便验证一下两者读写性能的对比,nio是否真的比普通 ...

  2. 【Android - MD】之TabLayout的使用

    TabLayout是Android 5.0新特性--Material Design中的一个控件,是一个标签页的导航条,常结合ViewPager完成页面导航. 和其他MD控件一样,使用TabLayout ...

  3. 设计模式(4) -- 单例模式(Singleton)

    设计模式(4)  -- 单例模式(Singleton) 试想一个读取配置文件的需求,创建完读取类后通过New一个类的实例来读取配置文件的内容,在系统运行期间,系统中会存在很多个该类的实例对象,也就是说 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...

  5. isAssignableFrom与instanceof的区别

    1.isAssignableFrom针对的是class对象: 2.instanceof是实例. isAssignableFrom是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的 ...

  6. mysql 操作指令笔记

    设置区分大小写: 打开my.ini,最后加入: [mysqld] lower_case_table_names=2 (2表示区分大小写,但仅限于字段,数据库名.表名.存储过程名都是小写的) 查看方法: ...

  7. PL/SQL 嵌套表变长数组和索引表[转]

    关于PL/SQL中这三种数组的介绍,不想写了.转一篇日志吧…… 链接:http://www.blogjava.net/decode360/archive/2008/08/08/280825.html ...

  8. JAVA导出Excel封装

    1.数据bean public class ExcelBean { private String name; private String sheetName; private ExcelTitle[ ...

  9. iis6 下发布MVC2项目的方法

    1.安装MVC2运行库,否则会出现错误 [以下转载]http://blog.csdn.net/xw13106209/article/details/6323695 错误:”未能加载文件或程序集“Sys ...

  10. iOS 百度地图监听地图状态

    百度地图提供了地图状态的对象BMKMapStatus ///此类表示地图状态信息 @interface BMKMapStatus : NSObject { float _fLevel; // 缩放比例 ...