最后更新于 .

之前在vim下一直是用幼圆看中文(参见我的另一篇文章:Vim(gvim)编程字体推荐),效果其实还是很不错的,但是对于开启了cleantype的系统来说,微软雅黑可能是一个更好的选择。

后来也有朋友说很想在gvim下面使用微软雅黑,所以这次就和大家分享一下。    

之前不使用微软雅黑的原因也是很明显的,因为gvim默认的字体列表里面并不支持微软雅黑,至于原因网上也都说的很清楚了,也有人自己编译了gvim的全字体版提供下载,但是相信大部分人是和我一样,宁愿改字体也不想改gvim(vim)本身吧,呵呵。    

但是呢!只要vimer们想做的事情,那就绝对没有做不到的!~~~~

下面秀一下我的gvim中使用微软雅黑+Bitstream vera sans mono的样子~~    

10px(适合<14英寸屏幕)

   

10.5px(适合>17英寸屏幕)

哈哈,怎么样,是不是比幼圆精致很多啊!赶紧去试一下吧!~~

分别的配置代码如下:

10px

set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI 
set gfw=Yahei_Mono:h10:cGB2312

10.5px

set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI 
set gfw=Yahei_Mono:h10.5:cGB2312

下面是字体下载~~~~~

http://behindchoice.blogbus.com/logs/34753324.html

希望大家使用愉快~~~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. Forrest

    Forrest on #

    哈哈!终于用上了雅黑了,谢谢!

    Reply

    1. Dante

      Dante on #

      呵呵,不用客气~~~

      Reply

  2. isunbo

    isunbo on #

    这个不错O(∩_∩)O~

    Reply

  3. Allen

    Allen on #

    很感谢!很不错!

    Reply

    1. Dante

      Dante on #

      哈哈,不客气~~~

      Reply

  4. mhsy2003

    mhsy2003 on #

    Window下为什么无效?

    Reply

    1. Dante

      Dante on #

      不会啊,这篇文章就是给windows下的gvim使用的~~

      Reply

  5. wind

    wind on #

    之前也用的雅黑,不过因为某些个人的原因,决定还是使用新宋体,字体的清晰度更高一些。对于一些比较繁杂的字来说显示的更清楚。
    感谢你的代码了,的确很好用,可以另外设一个中文的显示字体。

    Reply

    1. Dante

      Dante on #

      呵呵,过年刚回来,刚能上网,新年快乐~~

      不用客气,有用就好~~

      Reply

  6. cuxnil

    cuxnil on #

    谢谢分享经验,有一个问题请教一下
    我在windows下设置set gfw这条命令不起作用,只能用set guifont。
    我用的是原版GVIM,请问你是不是在配置里还做了别的设置?

    Reply

    1. Dante

      Dante on #

      _vimrc的文件格式需要是cp936的哦

      Reply

  7. fuadam

    fuadam on #

    这个字体实在太爽了

    Reply

    1. Dante

      Dante on #

      哈哈,雅黑看中文确实要舒服很多~~

      Reply

  8. rods

    rods on #

    用不了雅黑,配置如下:

    set fileencodings=ucs-bom,utf-8,cp936,big5,latin1
    set ambiwidth=double
    let $LANG='en'
    set number
    set go= "不要工具条
    set nobackup "不备份
    set nowritebackup "不备份
    "set guifont=Bitstream_Vera_Sans_Mono:h11:cANSI
    "set guifont=YaHeiConsolas:h12:cANSI

    "set fenc=gbk 3:w
    set guifont=Bitstream_Vera_Sans_Mono:h11:b:cANSI
    set gfw=Yahei_Mono:h11:cGB2312

    Reply

    1. fuadam1982

      fuadam1982 on #

      你的_vimrc的fileencodings必须是cp936,你可以:set fileencodings 看一下,如果不是强制赋值为cp936然后:w

      Reply

      1. Dante

        Dante on #

        多谢fuadam的帮忙,我稍微纠正一下哦,应该是set fileencoding,不要加s~~~

        fileencoding是指当前文件编码。
        fileencodings是指vim在检测文件编码的时候的检查顺序。

        Reply

        1. Limux

          Limux on #

          我的_vimrc的set fileencoding?显示空,设置cp936后保存,重新打开还是空,没有效果,why?

          Reply

          1. Dante

            Dante on #

            呃,你是用的win版的gvim?还是linux下的?有把多语言支持编译进去吗?

            Reply

  9. saner69

    saner69 on #

    能在百忙中抽空写一篇字体修改的教程吗?如你的微软雅黑+Bitstream vera sans mono 是如何制作的。

    Reply

    1. Dante

      Dante on #

      呵呵,其实我也只是略懂皮毛啦,我用的那个字体软件是Font creator,可以试一下,应该还是比较简单的。

      Reply

    2. 可可火山

      可可火山 on #

      果然是你自己做的字体那。
      造福了,thx

      Reply

  10. ySJ

    ySJ on #

    谢了,正要用呢。

    Reply

  11. lili

    lili on #

    求教我的gvim中文设置没用,跟没设一样。
    set nocompatible
    source $VIMRUNTIME/vimrc_example.vim
    source $VIMRUNTIME/mswin.vim
    behave mswin

    filetype plugin on

    ":set fenc=gbk

    set backspace=indent,eol,start
    "set backup
    set nobackup
    set nowritebackup

    set guifont=Bitstream_Vera_Sans_Mono:h14:cANSI
    set gfw=Yahei_Mono:h10.5:cGB2312

    set helplang=Ch
    set history=50
    set hlsearch
    set incsearch
    set keymodel=startsel,stopsel
    set ruler
    set selection=exclusive
    set selectmode=mouse,key
    set whichwrap=b,s,,[,]
    set window=17

    set diffexpr=MyDiff()
    function MyDiff()
    let opt = '-a --binary '
    if &amp;diffopt =~ 'icase' | let opt = opt . '-i ' | endif
    if &amp;diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
    let arg1 = v:fname_in
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
    let arg2 = v:fname_new
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
    let arg3 = v:fname_out
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
    let eq = ''
    if $VIMRUNTIME =~ ' '
    if &amp;sh =~ '\ ' . arg3 . eq
    endfunction

    Reply

  12. 风吹雨飞

    风吹雨飞 on #

    知道为什么按照设置没有生效吗
    字体名称是Yahei Mono两个单词中间有个空格
    文中是让大家这样设置的
    set gfw=Yahei_Mono:h10:cGB2312
    空格变成了下划线
    应该写成这样
    set gfw=Yahei\ Mono:h10:cGB2312
    空格前加个\

    Reply

  13. w

    w on #

    vimrc是cp936,空格前加个\ 都没用,gfw无效

    Reply

    1. Dante

      Dante on #

      我在windows下用下划线代替空格是可以的,linux由于我只能上终端,所以没法测试linux gvim的效果……

      Reply

  14. 渡水的疯子

    渡水的疯子 on #

    我win7下的vim73
    set:gfw=Yahei_Mono:h10.5:cGB2312,中文还是vim默认的...encoding等设置都对的。只能设置guifont为yahei_mono时才会有效。

    Reply

    1. Dante

      Dante on #

      应该不会吧,我这里都没问题呀,不过我是XP,能把怎么配置的贴出来一下?

      Reply

  15. 渡水的疯子

    渡水的疯子 on #

    以前xp下能够显示雅黑中文,字体配置就是按照那篇编程字体推荐来设的。

    Reply

    1. Dante

      Dante on #

      额,那就真不知道了,还没机会换win7。。。

      Reply

  16. geekey

    geekey on #

    先感谢Vimer介绍这么好的字体,呵呵,我是14''的
    用的是17"的配置代码,稍等做了一下改动,和17“的显示基本一样,好养眼,呵,如下(写入_vimrc):
    set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
    set guifont=Yahei_Mono:h10.5:cGB2312

    Reply

    1. Dante

      Dante on #

      哈,enjoy!

      Reply

  17. chuan

    chuan on #

    唔...无意间翻到博主的博客

    关于win下gfw的设置,
    1)只要vimrc中没有中文出现,并不需要是cp936
    2)guifontwide需要在encoding=utf8的情况下才生效,无效的同学可以去看看自己的enc设置。

    Reply

    1. Dante

      Dante on #

      正解~
      补充一下,无论对与cp936还是utf8或是其他多字节编码,对于英文字母的ascii码都是不变的,所以如果只有英文的话,也就不存在编码的问题了~

      Reply

    2. rst

      rst on #

      set encoding=utf-8

      set guifont=consolas:h10:cANSI
      set guifontwide=mingliu:h10:cGB2312

      呀哈,第一行語句就可以正常顯示中文字體了!
      原來是編碼問題!

      Reply

  18. poly

    poly on #

    奇怪了,以前我在win7下配置的幼圆字体,
    现在到xp下报"无效的guifontwide"
    换成雅黑也不行。

    set encoding=utf-8
    set fenc=utf-8
    set fileencodings=ucs-bom,utf-8,cp936

    if has("win32")
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    language messages zh_CN.utf-8
    endif
    if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
    set ambiwidth=double
    endif

    set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
    set gfw=Yahei_Mono:h10.5:cGB2312

    _vimrc保存成cp936和utf8都不行。

    Reply

    1. Dante

      Dante on #

      呃。。没有用win7。。。不过我在公司的机器上设置过字体,是没问题呀

      Reply

      1. poly

        poly on #

        现在我把“set gfw=Yahei_Mono:h10.5:cGB2312”给注释了用。
        然后打开项目的时候,会报个“无效的字体:guifont=Bitstream_Vera_Sans_Mono:h10:cANSI”错误。

        Reply

        1. Dante

          Dante on #

          这个字体有安装吗?
          你的意思是在xp下一切正常,到了win7就不行?

          Reply

          1. poly

            poly on #

            特地在您这里下来装了的。
            之前我用的是win7,用的幼圆~一直没问题。
            最近公司给配了台新电脑,懒得升级到win7了,将就用着xp,结果就杯具了。各种尝试都不成。

            Reply

            1. Dante

              Dante on #

              奇怪了,看你的配置应该是没问题的,实在是不知道怎么回事了,设置成别的字体OK吗?

              Reply

              1. poly

                poly on #

                貌似找到原因了。
                尝试直接在命令行设置时报“无效的字体”。
                连arial都不行。
                于是试着:set gfn=* 给出字体请求对话框~
                然后发现可选的字体少得可怜~
                当然arial、Bitstream_Vera_Sans_Mono、yahei都不在里面。

                于是仍然在寻求解决办法ing。

                Reply

                1. 默默的伴随

                  默默的伴随 on #

                  这个只要用记事本把_vimrc编码换成ANSI的就好了

                  Reply

  19. zealkane

    zealkane on #

    请教一下,在Windows下按上面的设置,中文是可以正确显示了,但为什么运行命令后,提示消息都是乱码,在打开中文的文档后,程序底部的中文提示信息全都变成乱码了

    Reply

    1. Dante

      Dante on #

      额,你是windows下的命令行吗?

      Reply

  20. 小井

    小井 on #

    win7下
    set gfw=Yahei_Mono:h10.5:cGB2312
    表示毫无效果,博主救命~~~

    还有,为啥我的评论‘fail’了?

    Reply

    1. Dante

      Dante on #

      呃,应该不会呀?你有安装yahei_mono吗?默认的微软雅黑是不行的。
      还有你的win7中文版是gb2312的编码吧?

      Reply

  21. sheperdwind

    sheperdwind on #

    悲剧,字体下载还要解压密码。实在烦人,中国做vim的都这么小气。

    Reply

  22. jungle

    jungle on #

    试了下 win7这招不好使。。。悲剧呀

    Reply

  23. GOVO

    GOVO on #

    楼上的招数都用过了,下划线改为\也用了,都没用,一起说无效的guifontwide

    Reply

  24. 阿讷

    阿讷 on #

    'guifontwide' 'gfw' 字符串 (缺省为 "")
    全局
    {Vi 无此功能}
    {only 仅当编译时加入 GUI 的支持才有效}

    如果非空,指定用于双宽字符的逗号分隔的字体列表。第一个能载入的字体被使
    用。

    注意: 这些字体必须使用 'guifont' 指定的两倍宽度和相同的高度。

    除了 GTK+ 2 之外的所有 GUI 版本:

    'guifontwide' 只有在 'encoding' 设为 "utf-8" 并且 'guifontset' 为空或
    非法的时候才使用。
    如果设置 'guifont' 并且从中找到合法的字体,但 'guifontwide' 为空的时
    候,Vim 会试图找到匹配的双宽的字体并设置 'guifontwide' 为此值。

    我的也设置不了 不知道这里有没有原因

    Reply

  25. x-snail

    x-snail on #

    博主你好,我是一个新手,遇到一些问题百度不到,就是关于设置字体后,保存了没有反映,我不知道怎么解决 请博主有时间答复我一下?

    Reply

    1. Dante

      Dante on #

      能贴一下你的设置?

      Reply

  26. Ni许嵩

    Ni许嵩 on #

    想问一下大师,如果我想设置加粗该怎么设置?

    Reply

    1. Dante

      Dante on #

      呃,因为微软雅黑为了粗体的美观,让它的普通字体和加粗是两套字体,而文中只是普通字体那一套,所以设置不了。。。

      Reply

      1. Ni许嵩

        Ni许嵩 on #

        哦,原来是这样啊!谢谢您!

        Reply

  27. Ni许嵩

    Ni许嵩 on #

    还有一个问题,处理 H:\Vim\_vimrc 时发生错误:

    第 224 行:

    E484: 无法打开文件 C:\Program Files\Vim\vim72/delmenu.vim

    第 425 行:

    E484: 无法打开文件 C:\Program Files\Vim\vim72\syntax\syntax.
    vim
    这个路径的问题该如何解决呢?之前的vim我装的C盘,后来卸掉了C盘的,装在了D:盘,就出现这样的问题了!求大师给解决一下!谢谢啦!呵呵

    Reply

    1. Ni许嵩

      Ni许嵩 on #

      问题已解决!不过依然要谢谢您!另外,有点建议!您能否搞一个会员留言这样的,就像百度贴吧,当然比那个更简单一些最好!这样,我们这些您的fans再来看您的回复的时候,就可以更方便了!不用再搜索某篇文章了!只是个人建议!有些自私了!望谅解!

      Reply

  28. nbsp

    nbsp on #

    太费眼了,有点模糊

    Reply

  29. piero

    piero on #

    楼主,这个雅黑字体的链接是不是失效了啊,能再给个新的下载地址吗,谢啦~

    Reply

  30. Fred Xiao

    Fred Xiao on #

    求这个字体啊.找了很久才发现vimer就有,但是貌似链接下载不了.博主能发个到邮箱吗?谢谢了.fred.l.xiao@gmail.com

    Reply

    1. Dante

      Dante on #

      搜一下 yahei_mono ? 下载文件丢了。。

      Reply

  31. Eric

    Eric on #

    呵呵,感觉最好看的字体还是Consolas,虽然显示中文不怎么好,不过代码什么的很漂亮!
    set guifont=Consolas:h9:cANSI

    Reply

  32. skeu

    skeu on #

    博主 你好:
    在win7下 guifontwide必须在encoding为utf8才能设置生效 但是设置utf8之后 整个界面就悲剧了 菜单和命令提示全是乱码 有什么好的解决方法么?

    Reply

    1. Dante

      Dante on #

      呃,我都是不用界面的。。
      set go=

      Reply

      1. sky

        sky on #

        set encoding=utf-8
        set termencoding=utf-8
        set fileencoding=utf-8
        set fileencodings=ucs-bom,utf-8,chinese,cp936
        source $VIMRUNTIME/delmenu.vim
        source $VIMRUNTIME/menu.vim
        language messages zh_CN.utf-8

        Reply

        1. zloren

          zloren on #

          我是把sky的贴出来的东东复制到vimrc文件中,gfw才生效的。
          谢谢博主和sky。

          Reply

  33. Geek

    Geek on #

    现在的附件已经不能下载了,能再上传一次吗?谢谢...

    Reply

    1. Dante

      Dante on #

      在这个页面来下载哈:
      http://behindchoice.blogbus.com/logs/34753324.html

      Reply

  34. zl1st

    zl1st on #

    设置了fileencoding=cp936
    可是还是提示了无效guidfont

    Reply

  35. zl1st

    zl1st on #

    设置了fileencoding=cp936
    可是还是提示了无效guifontwide

    Reply

  36. Jason

    Jason on #

    你好,字体下载的链接失效了。给否重传一份呢?

    Reply

  37. sky

    sky on #

    如果还有人没有配置成功,不妨这样一试,直接贴在配置文件里面即可
    set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
    set guifontwide=mingliu:h10:cGB2312

    Reply

  38. 小行

    小行 on #

    字体下载链接失效了。

    Reply

    1. Dante

      Dante on #

      字体确实找不到了。。因为两年前就开始在mac下工作了。。

      Reply

  39. caimaoy

    caimaoy on #

    对当时这就是这样的!!!if has("multi_byte") set encoding=utf-8endif

    Reply

  40. caimaoy

    caimaoy on #

    我有个问题:这两个字体放在一起不是会出现不对齐(字母和中文高度不一)的情况吗?

    Reply

    1. Dante

      Dante on #

      会的。。后来还到mac下就不需要再纠结这个问题了

      Reply

  41. yanwushu

    yanwushu on #

    资源已经失效

    Reply

发表评论