好了,做了不短时间的伸手党了。
自从数个月前喜欢上VIM,历经多次WIN和LINUX之间的来回折腾,
虽然蛋痛无比,楼主还是随身带着那一份VIM配置,让那酷酷的desert主题闪耀在楼主接触过的每一个屏幕。
平时倒还好,自己机子上常跑的是linux,各种工具强大无比:gcc、make、gdb、valgrind,
楼主插件齐备,武装齐全,意气风发,一口气写50行,不费劲!
但是假期了,楼主回到家,机子上跑的是Win7系统。
假期也就20天,何况硬盘已经塞满,不好另起炉灶。于是本着不折腾的原则开始折腾VIM……
文章中出现的VIM均指gVim
准备工作
你需要:一个VC++编译器
评 价:废话
好吧,话虽然废,但是你得知道这东西在哪。
如果你有VS(前提是装了VC++部分),找到你的VC++安装路径,比如:
D:\programs\VC2008 Professional Edition
再加点东西:
D:\programs\VC2008 Professional Edition\VC
嗯,就是这里。
如果你没有VS,请百度:VC2008编译器
这里给个来自我的115盘的下载链接:http://115.com/file/e6a87i3x
记着这个编译器目录,我们后面有用。
基础篇
首先跑到你的VIM安装目录(目录下可以见到gvim.exe),
写这样一个文本文件并命名为vc_cl.cmd 【因为vim本身有个:cl !】:
代码: 全选
@set MYPATH=编译器目录
@set PATH=%MYPATH%\bin;%MYPATH%\..\Common7\IDE
@set INCLUDE=%MYPATH%\include;%MYPATH%\PlatformSDK\Include;%MYPATH%\atlmfc\include;%MYPATH%\DirectX_SDK\Include;
@set LIB=%MYPATH%\lib;%MYPATH%\PlatformSDK\Lib;%MYPATH%\atlmfc\lib;%MYPATH%\DirectX_SDK\Lib\x86;
cl %1
加这么几句:
代码: 全选
autocmd FileType c map <F9> : call VCCompiler()<CR>
func! VCCompiler()
exec "w"
exec "!vc_cl %"
endfunc
进阶篇
Windows下使用vim存在着不少问题,
其中quickfix窗口不能好好用是最让楼主蛋疼的。
如果在linux下,我们输入
代码: 全选
:!gcc %
在Windwows中却弹出个难看的框框(如果谁知道怎么解决请务必告诉我)。
用上面的方法进行编译还有一个问题,
就是当你编译一个工程的时候,只能跑去试图编译那个有着main()的文件。
此外,cl是不认头文件的,不能像gcc一样单编译个头文件。
基于以上问题,我们需要更加强力的解决之道:Makefile
一个简单的Makefile是非常好些的,这里不做深入探讨。
只给出一个非常简单的例子:
目录结构
Project
- bin
- src [Makefile在这里]
- obj
代码: 全选
bin = "../bin/program.exe"
obj = "../obj"
objects = $(obj)/main.obj
$(bin) : $(objects)
$(CC) -o $(bin) $(objects)
$(obj)/main.obj : main.c
cd ../obj
$(CC) -c ../src/main.c
所以与刚才类似的(我称之为batch-link大法),在Vim目录下创建nmake.cmd
代码: 全选
@set MYPATH=编译器目录
@set PATH=%MYPATH%\bin;%MYPATH%\..\Common7\IDE
@set INCLUDE=%MYPATH%\include;%MYPATH%\PlatformSDK\Include;%MYPATH%\atlmfc\include;%MYPATH%\DirectX_SDK\Include;
@set LIB=%MYPATH%\lib;%MYPATH%\PlatformSDK\Lib;%MYPATH%\atlmfc\lib;%MYPATH%\DirectX_SDK\Lib\x86;
nmake %1
代码: 全选
autocmd FileType c map <F9> : call VCMake()<CR>
func! VCMake()
exec "w"
compiler msvc
exec "make"
endfunc
渣排版见谅……我弄不到更好了……