在GVim中使用所有的Windows字体的方法

  说实话, 一直使用GVIM, 但是没能找到一个在GVIM中能用的好看的字体, 不是因为没有字体, 而是在GVIM不能使用,
GVIM默认在执行:set guifont=*选择字体时只支持等宽字体(貌似也并不是所有的等宽字体都能选择), 这导致很多的字体
不能使用, 而能使用的字体却又显示效果非常差, 很不好看, 反正我是这样觉得, 在Ubuntu下面显示效果很好...
  经测试, 不使用等宽字体,GVIM也能正常工作, 但是这么久以来, 作者为什么没有作修改? 明显, 并不是所有时候都要
使用等宽字体. 虽然Vim是写代码的利器...

  好吧, 说说修改方法(源代码修改):
    1.修改需要用到的工具:VS(VC6,VC2012等貌似都可以)
    2.下载一个你需要的版本的源代码(文件名是vim**src.zip):ftp://ftp.vim.org/pub/vim/pc/
    3.解压出其中的src目录
    4.找到os_mswin.c(以vim74为例)
      找到函数 int get_logfont(LOGFONT    *lf,char_u* name,HDC printer_dc,int verbose);(在第2684行处)

修改 cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_INITTOLOGFONTSTRUCT;
为   cf.Flags = /*CF_SCREENFONTS | CF_FIXEDPITCHONLY |*/ CF_INITTOLOGFONTSTRUCT;

      找到函数 static int CALLBACK font_enumproc(ENUMLOGFONT* elf,NEWTEXTMETRIC* ntm,int type,LPARAM lparam);(在第2608行处)
      注释掉以下两行代码,看作者的注释就可以知道.

    /* Ignore non-monospace fonts without further ado */
    //if ((ntm->tmPitchAndFamily & 1) != 0)
    //return 1;

 

    5.用NMAKE重建EXE
      执行命令:nmake -f Make_mvc.mak GUI=yes IME=yes DEBUG=no MBYTE=yes 即可
      关于makefile的命令要求:参考Make_mvc.mak
  
    6.没有了, enjoy!



  如果不想动手的, 可以直接下载我修改后的版本, 我是用VC6.0和NMAKE编译的
  除了以上两个需要修改的地方, 源代码未作其它任何修改
  下载地址:http://pan.baidu.com/s/1bnvlGWv

女孩不哭 @ 2013-06-14 05:33:08 @ http://www.cnblogs.com/nbsofer


posted @ 2013-06-14 05:34  女孩不哭  阅读(4506)  评论(0编辑  收藏