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:没有加入其他语言的支持,因为电脑上没装,所以懒得了