在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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM