日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

windows下重新編譯Vim7.3(支持GDI++渲染) | 不存在的日志

 Rainboy913 2013-12-07

偶然的原因,認(rèn)識(shí)了GDI++字體渲染,據(jù)說可以讓windows下的字體效果變得類似Mac下一樣。使用一段時(shí)間后就愛上了它,總之,視覺效果比開啟了ClearType的windows字體渲染也要好很多。

奈何gvim似乎有點(diǎn)水土不服,既不支持非等寬字體(比如著名的雅黑),而且GDI++的渲染似乎也是只在菜單生效,效果圖如下

注:字體均為Dejavu_Sans_Mono,配色方案wombat256,相關(guān)配置文件如下

1
2
set guifont=Dejavu_Sans_Mono:h11:cANSI
colorscheme wombat256

未開啟GDI++的vim7.3圖1 默認(rèn)的gvim7.3,未開啟GDI++渲染

默認(rèn)的gvim7.3,打開gdi++渲染圖2 默認(rèn)的gvim 7.3,打開GDI++渲染后,只有菜單生效

重新編譯后的gvim 7.3,開啟gdi++渲染圖3 重新編譯后的gvim 7.3,GDI++渲染完全生效

windows下使用VS2008重新編譯Vim7.3的流程:

  1. http://mercurial./downloads/ 下載安裝mercurial,因?yàn)樾枰拍軓膅oogle code獲取VIM的源代碼
  2. 下載vim的源代碼,按照 http://www./mercurial.php 的指南,相關(guān)命令(需要為hg.exe設(shè)置環(huán)境變量PATH)如下,假定當(dāng)前目錄是 VS2008,則vim的源代碼會(huì)下載到 \VS2008\vim\
    1
    2
    3
    hg clone https://vim.googlecode.com/hg/ vim
    hg pull
    hg update
  3. 參考了善用佳軟 “支持非等寬字體、屏幕取詞的gvim v7.3” 一文,以及水木社區(qū)VIM版對(duì)屏幕取詞和重新編譯的相關(guān)討論,修改 \VS2008\vim\src\gui_w32.c 下font renderer相關(guān)內(nèi)容,這樣GDI++渲染就可以完全生效,即注釋掉os_version.dwPlatformId相關(guān)的兩行代碼:
    1
    2
    3
    4
    5
    6
    7
    8
    /* 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. */
    /* bucunzai: font renderer */
    /*
    if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
    foptions |= ETO_IGNORELANGUAGE;
    */
  4. 準(zhǔn)備編譯所需的環(huán)境,即:執(zhí)行 開始菜單\Microsoft Visual Studio 2008\Visual Studio Tools\Visual Studio 2008命令行提示(即VS2008安裝目錄下\VC\vcvarsall.bat) vim源代碼目錄下的 \VS2008\vim\src\msvc2008.bat (多用心,這都準(zhǔn)備好了-_-#)。當(dāng)然,這之前你得裝了VS2008。
  5. 在src目錄下執(zhí)行編譯巨型版本+帶Python 2.6支持的批處理。其中第一行清理之前生成的文件(如果有的話)。批處理文件如下
    1
    2
    nmake -f Make_mvc.mak clean
    nmake -f Make_mvc.mak GUI=yes OLE=yes PYTHON=c:\python26 DYNAMIC_PYTHON=yes PYTHON_VER=26 IME=yes GIME=yes DYNAMIC_IME=yes GDYNAMIC_IME=yes CSCOPE=yes MULTI_BYTE=yes MULTI_BYTE_IME=yes USERNAME=bucunzai USERDOMAIN=testing FEATURES=HUGE

    如有需要,可以參考源代碼目錄下 \VS2008\vim\src\bigvim.bat (重新編譯支持Perl/Python/Ruby/Tcl的批處理文件)以及 http://code.google.com/p/jff/source/browse/trunk/XDE/xde/vim/doVC.bat (用于自動(dòng)編譯VIM的批處理)增加相應(yīng)的選擇,以便支持Perl/Ruby/Tcl/Python3等。

  6. 不知道為什么,USERNAME和USERDOMAIN選項(xiàng)好像沒生效,最后生成的gvim.exe顯示的編譯者是當(dāng)前windows的用戶名@計(jì)算機(jī)名,如有需要,可以修改 \VS2008\vim\src\ObjGOY\pathdef.c 最后兩行,改為自己喜歡的自定義昵稱
    1
    2
    char_u *compiled_user = (char_u *)"bucunzai";
    char_u *compiled_sys = (char_u *)"testing";
  7. 在src目錄下的 gvim.exe 就是在windows下重新編譯的支持GDI++渲染,并且也應(yīng)該支持金山詞霸取詞(未驗(yàn)證,我沒裝),帶目前7.3的1-32個(gè)補(bǔ)丁,其他語言支持只帶Python2.6,未加入Perl/Ruby/Tcl/Python3等。
  8. 下載見最后,用 :version 看下版本 

重新編譯后的gvim 7.3下載: gvim 7.3 20101021

帶md5驗(yàn)證 8416f911cbba02e7b2b02d46228c5781 *gvim.exe

2010年10月28日更新

重新編譯的 gvim 7.3.047下載: gvim73_47

md5驗(yàn)證 34e95349b474f41fae9a1486832c0165 *gvim.exe

2010年11月01日更新

根據(jù)3中提到的修改os_mswin.c,也是注釋掉一行代碼,使gvim可以支持非等寬字體(比如微軟雅黑)。因?yàn)閣indows自身的編碼是cp936,而使用非等寬字體需要設(shè)置編碼為utf-8,因此菜單會(huì)亂碼。修改了部分在vimrc中的相關(guān)配置,第一部分設(shè)置幫助語言為中文,同時(shí)設(shè)置菜單為英文,終端提示為中文;第二部分修改編碼;最后設(shè)置英文字體為Dejavu_Sans_Mono,中文字體為微軟雅黑。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if has("win32")
    set helplang=cn " help language = cn!
    source $VIMRUNTIME/delmenu.vim
    set langmenu=en_US
    source $VIMRUNTIME/menu.vim
    language messages zh_CN.utf-8
endif
if has("multi_byte")
        set encoding=utf-8
        set termencoding=utf-8
        set fileencoding=utf-8
endif
set guifont=Dejavu_Sans_Mono:h11:cANSI
set guifontwide=Microsoft_YaHei:h11

看看此時(shí)的字體效果,順便看下版本:

重新編譯的支持非等寬字體/支持屏幕取詞/支持GDI++渲染的gvim 7.3.047下載: gvim73_47_non_mono

MD5驗(yàn)證: f2aee45be349c6207c0b79293da97ea3 *gvim.exe

2011年4月2日更新

從google code更新了一下(hg pull && hg up),重新運(yùn)行一遍批處理,gvim 7.3.152下載:gvim73_152_non_mono

MD5驗(yàn)證:4f98f2e50042988268ccc35a873b44e8 *gvim.exe


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多