`
richiewu
  • 浏览: 34008 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Windows下使用VIM,搭建Mainframe开发环境(二)---编译VIM

阅读更多

编译一个自己的VIM/GVIM

Step1:Cygwin
首先是安装Cygwin.
Cygwin安装没什么好说的了,网上到处都是说明如何安装的文章.

如果在编译VIM的时候需要打上补丁,建议安装devel/patch,即patch命令.
这里除了用到patch外,还借助Cygwin充当控制台,比如可以修改/etc/profile,增加两行:
vimsrc=/cygdrive/e/Workstation/vim/vim72/src
export vimsrc
这样就可以通过"cd $vimsrc",直接到src的目录(需要重启Cygwin).

Step2:MinGW
Windows下的C/C++编译器
Vista和MinGW存在兼容性问题,参考这篇文章配置环境变量.
安装MinGW的时候选中base tool和g++ compiler.比如我安装到"D:/Program Files/MinGW".

如果希望使用Cygwin来完成编译,也可以安装Cygwin下的编译器,或者将MinGW的环境变量加入到/etc/profile中去:
MINGW_PATH="D://Program Files//MinGW"
export MINGW_PATH
C_INCLUDE_PATH="$MINGW_PATH//include;$MINGW_PATH//lib//gcc//mingw32//3.4.5//include"
export C_INCLUDE_PATH
CPLUS_INCLUDE_PATH="$MINGW_PATH//include//c++//3.4.5;$MINGW_PATH//include//c++//3.4.5//mingw32;$MINGW_PATH//include//c++//3.4.5//backward;$C_INCLUDE_PATH"
export CPLUS_INCLUDE_PATH
LIBRARY_PATH="$MINGW_PATH//lib;$MINGW_PATH//lib//gcc//mingw32//3.4.5"
export LIBRARY_PATH
因为WinGW的安装路径存在空格,需要用双引号括起来,并且对"/"进行转义://

如果环境变量配置不正确,可能遇到各类编译问题,比如找不到Include库:
buffer.c: In function `buf_contents_changed':
buffer.c:5485: error: dereferencing pointer to incomplete type
buffer.c:5485: error: dereferencing pointer to incomplete type
buffer.c:5490: error: dereferencing pointer to incomplete type
buffer.c:5490: error: dereferencing pointer to incomplete type
buffer.c:5493: error: dereferencing pointer to incomplete type
buffer.c: In function `wipe_buffer':
buffer.c:5523: error: dereferencing pointer to incomplete type
buffer.c: At top level:
structs.h:1286: error: storage size of `b_block_head' isn't known
make: *** [gobj/buffer.o] Error 1

Step3:Source
下载VIM源码,包括三个文件:
PC sources
Runtime files
PC translations
下载后解压即可,目录结构大致为vim/vim72/src,当然还有其他文件.
分别是源码,运行时需要的文件,翻译过的菜单 消息 语言文件等.

Step4:Patch
补丁,其中的README里面写了各个补丁的作用,可以阅读并选择需要的来使用,不过选择补丁是一件麻烦的事情,所以干脆全都下了打上.
将补丁放到任意目录,比如Cygwin中的/tmp目录下.
进入Cygwin控制台,假设补丁的名字叫patchname,进入vim/vim72/:
cat /tmp/patchname | patch -p0
补丁多了的时候还是借助shell命令来完成吧,毕竟一个一个敲实在是麻烦:
for file in /tmp/*; do patch -Np0 -i $file; done
有的补丁不可用,比如针对Mac平台的补丁,跳过即可.

Step5:Compile
进入Cygwin控制台,转到vim的源码目录:vim/vim72/src:
make -f Make_ming.mak GUI=yes OLE=yes
即开始编译.如果你需要打开VIM中的某些特性,比如使用任意字体,打开Ruby支持功能,
则需要修改make文件,具体参考VIM源码中的的说明文档(README for the Vim source code).
这里编译命令中打开了OLE特性,想知道OLE是什么,在VIM中输入:h ole.
打开OLE特性,可以让输入法跟踪光标,还可以结合Eclipse或者Visual Studio等进行编辑.

编译完成后会在src目录生成gvim.exe等其他文件,如果你已经安装过VIM,复制gvim.exe到安装目录覆盖即可.
如果没有安装过,复制gvim.exe和其他新生成的文件到上一级目录即可运行,这个目录便是VIM运行环境了,根据这些文件可以打包成一个完整的VIM Release.

Step6:Right Button Menu
如果你希望增加鼠标右键菜单支持直接在VIM的新标签打开文件,将以下文件保存为*.reg,导入注册表即可:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT/*/shell/Edit with Vim(&V)]

[HKEY_CLASSES_ROOT/*/shell/Edit with Vim(&V)/command]
@="/"D://Program Files//Vim//vim72//gvim.exe/" -p --remote-tab-silent /"%1/" /"%*/""

--------分割线---------
这里菜单名称叫Edit with Vim(V),V为快捷键.
你也可以用编译好的install.exe来添加,参考这篇文章
-p --remote-tab-silent的作用可以搜索网上文章.

特别说明
为GVIM添加标尺列功能:
UE中可以对任意一列添加标尺列,这样就会显示一条竖线,这对规定了多少列范围内的文字为有效字符的语言来说非常有用,比如hlasm,cobol等.
需要用到这个补丁:margincolumn.patch,打完补丁后编译,在vimrc中添加:
set mc=80或者set margincolumn=80即会在第80列显示一条竖线.
margincolumn.patch下载

如果应用补丁的时候报错,很可能你的代码不是最新版的,到VIM官方网页下载最新的代码吧,在CVS或者SVN页面下载.
比如官方提供的7.2版Source里的screen.c就不能直接用,需要更新.


最后,你还可以在系统环境变量中修改PATH,加上VIM运行环境的目录,这样通过运行命令就能直接启动gvim了,
现在开始享受VIM强大功能和它所带来的高效率吧.

更新:使用任意字体需要更改make文件,加上:
MVC:
CFLAGS = $(CFLAGS) -DFEAT_PROPORTIONAL_FONTS
MinGW:
DEFINES += -DFEAT_PROPORTIONAL_FONTS
分别对应MS VC++和MinGW编译时用到的make文件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics