http://bucunzai.net/2010/10/vim/
主要参考以上两处的方法
VIM的源码补丁
源码
源码下载
源码下载工具
hg clone https://vim.googlecode.com/hg/ vim /*后面的vim表示保存的当前目录下的vim文件夹*/
hg pull /*由于是第一次下载,所以以下两行没啥用*/
hg update
打开编辑
vimsrcgui_w32.c
/* On NT, tell the font renderer not to "help" us with Hebrew and Arabic
* text. This doesn't work in 9x, so we have to deal with it manually on
* those systems. */
if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
foptions |= ETO_IGNORELANGUAGE;
/* 这两行注释掉*/
打开vimsrcos_mswin.c
#ifndef FEAT_PROPORTIONAL_FONTS
/* Ignore non-monospace fonts without further ado */
if ((ntm->tmPitchAndFamily & 1) != 0)
return 1;
/*注释掉这两行(或者return 0,不知道行不,没有尝试)*/
#endif
编译过程中出现
vimsrcObjGOY***pathdef.c
编辑文件最后面
char_u *compiled_user = (char_u *)"名字";
char_u *compiled_sys = (char_u *)"系统名称";
打开
vimsrcvim.h
在开头加上这一行(#include语句之后):
#define MODIFIED_BY "修改人名称 "
修改适合vs2013编译器的makefile文件Make_mvc.mak
这个文件在源码的src目录下面,打开它。
在# Derive version of VC being used from nmake if not specified 这个区域下面,加入最新的vs2013的vc编译器的定义,否则makefile会拒绝编译,因为版本不匹配。
大约是424行,这个地方:
!if "$(_NMAKE_VER)" == "11.00.60610.1"
MSVCVER = 11.0
!endif
在上面这一段下面加上如下的这一段:
!if "$(_NMAKE_VER)" == "12.00.21005.1"
MSVCVER = 11.0
!endif
加上的这一段是为了加入vs2013的vc编译器版本定义的支持。
611行,把SUBSYSTEM = windows改成 SUBSYSTEM = windows,5.01
639行,把SUBSYSTEM = console改成 SUBSYSTEM = console,5.01
改这两行是为了让vs2013的编译器编译出来的exe支持在win2000 sp1及以上的版本系统运行,不改的话,生成的exe只支持在vista及以上的系统运行
PS:7.4版本的源码新版本会直接加入支持,我的是VIsual Studio 2012 即MSVCVER=11.0,不需要修改,此处为附加
最后编译64位的gvim.exe。
以下为vimsrcbigvim64.bat的内容
nmake -f Make_mvc.mak FEATURES=HUGE GUI=yes OLE=yes CPUNR=Intel64 CPU=ALPHA IME=yes GIME=yes CSCOPE=yes SNIFF=yes POSTSCRIPT=yes %1 USERNAME=SUMIT USERDOMAIN=SUMIT-PC
pause
CPU= 这一项实在不知道是什么,原先用AMD64,后来提示只有i386和ALPHA,我直接把i386排除了。不过这样后面会提示LINK错误,说ALPHA参数无效,必须为x86 x64之类的,也没在意。CPUNR不知道是干啥的
打开 VS2013 x64 本机工具命令提示(开始菜单中),执行bigvim64.bat,
生成gvim.exe之后拷贝到VIM目录运行它,使用:ve看,如果第二行是
MS-Windows 64-bit GUI version with OLE 就说明成功了。

附上效果图,可以中英文分别定义一种字体了,并且Mactype渲染效果不错


补丁已经到183了,比ftp上的还多一个,看来google code上的源码比较新啊
PS:没有加入其他语言的支持,因为电脑上没装,所以懒得了