网上从来不缺编程字体推荐的文章,当然vim(gvim)字体的推荐文章也是多不胜数,但是大部分都是想当然的认为哪些字体好用就介绍出来,甚至都没有自己亲自试过,也没有考虑过用户使用19英寸的显示器和14英寸的笔记本时对字体的要求到底有什么不同,鉴于以上几点,我决定写这样一篇文章,真正介绍vim(gvim)中最适合的编程字体。

注:由于vimrc中中文字体的设置需要用到中文,所以请务必保证vimrc的编码是gbk格式,如果不是gbk格式,可以通过1.打开vimrc。2.:set fenc=gbk 3.:w。的操作来解决。

一.17~19(或更大)英寸屏幕
    1)英文字体:
    名字:Bitstream Vera Sans Mono
    大小:10px
   
    在vimrc中的配置如下:

    set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI

    
    优点:
        a)0 O o  1 l ; : 区别非常明显,并且还有一点优势是大家经常会忘记的;:和中文的字体;:区别也很明显,十分适合编程
        b)字体圆滑,支持cleartype,加上配色非常舒服,不会有锯齿感
    缺点:
        说真的,没有。

    截图:

Bitstream Vera Sans Mono

    下载:
    Bitstream Vera Sans Mono

    2)中文字体
    名字:幼圆
    大小:10.5(呵呵,真的是10.5,而不是10或者11,只能通过配置文件来实现)

    在vimrc中的配置如下:

    set gfw=幼圆:h10.5:cGB2312

    优点:
        a)词库全
        b)字体光滑,且支持cleartype
        c)字体偏移与Bitstream Vera Sans Mono持平

    截图:

幼圆(10.5px)

    下载:
    幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者google一下就行)

二.12(或更小)~14英寸屏幕
    1)英文字体:
    名字:Arial monospaced for SAP
    大小:9px
   
    在vimrc中的配置如下:

    set guifont=Arial_monospaced_for_SAP:h9:cANSI

    
    优点:
        a)0 O o  1 l ; : 也是区别非常明显
        b)字体小且圆滑,支持cleartype,最重要的是它的比划只有一个像素,所以在小屏幕上看起来非常精致。而在12~14英寸屏幕上不使用Bitstream Vera Sans Mono的主要原因就在于,Bitstream Vera Sans Mono的比划太粗,在那么小的屏幕上显得很是臃肿。
    缺点:
        a)有个很大的问题就是,Arial monospaced for SAP这个字体中的*很靠上,而且()等符号和字母并没有持平,所以看起来很是别扭,所以笔者自己更改了一下,下面会放出下载(原版和修改版都有)
       
    截图:

笔者优化版:

Arial monospaced for SAP(优化版)

    下载:
    Arial monospaced for SAP(优化版)
    Arial monospaced for SAP(原版)

    2)中文字体
    名字:幼圆
    大小:10

    在vimrc中的配置如下:

    set gfw=幼圆:h10:cGB2312

    优点:
        a)词库全
        b)字体光滑,且支持cleartype
        c)也只有这个字体能够在12~14英寸屏上依旧显的很精致,和Arial monospaced for SAP相互映衬,感觉非常好

    截图:

幼圆(10px)
    
    下载:
    幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者google一下就行)
好啦,到此为止,我所一直使用的字体就介绍到这里了。下面说一下网上盛传的几款字体,根据我在vim(gvim)的真实使用,我谈如下几点体会:
1)关于YaHeiMono
    这个字体,组合了微软雅黑, 微软consolas,听起来确实很不错,但是真正用到vim(gvim)中,你会发现,consolas被压缩了,至于原因,是这样的:
    我试过将原版的consolas和原版的微软雅黑分别配置到vim(gvim)的英文字体和中文字体中(当然,用的是gvim的重编译版,支持所有字体),但出现的效果就是,微软雅黑明显要比英文consolas偏下一点,整个字体非常难看。如果大家不信,可以尝试一下,呵呵

2)关于中文字体,如果大家又想要微软雅黑的效果,又不想出现我在第一条里出现的问题,又不想重新编译gvim,那么可以试一下方正准圆简体,这款字体的光滑程度和微软不相上下,而且vim(gvim)默认支持哦,但唯一有缺憾的就是这款字体有时候会有点毛边,不过在9号字的时候,没有大碍,10号的话就有点问题了……

OK啦,这篇文章就写到这里,再说一遍哦,我推荐的字体只是测试过Vim(gvim),在别的编辑器上可能效果并不是很好(因为我只用gvim/vim)……
大家有更好的字体建议,欢迎给我留言啊~~

版权所有,转载请注明出处。http://www.vimer.cn

gvim(vim)使用微软雅黑中文字体

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

阅读全文

89则回应给“Vim(gvim)编程字体推荐”

  1. isunbo说道:

    你好,我安装了你介绍的字体,英文显示效果很好但是幼圆字体配置不了,提示”无效的guifontwide”.百度和Google也没得到结果.请问要怎么办呢?
    麻烦了,我刚接触gVim.
    我现在把gfw改成Fixedsys了:)

    [回复]

    Dante 回复:

    是这样的,估计你的vimrc文件不是gbk编码吧,vim的脚本编码识别只能支持gbk。
    按照如下操作试一下:
    1.打开vimrc
    2.:set fenc=gbk
    3.:w
    然后把guifontwide改成幼圆字体就可以啦~

    [回复]

    isunbo 回复:

    谢谢!问题解决了.
    原来是
    fenc=gbk,ucs-bom,utf-8,chinese,latin-1
    现在改成了
    fenc=ucs-bom,utf-8,gbk,latin-1
    也不知道文字编码的顺序放的对不对.
    网站的文章我会都看一遍的.

    [回复]

    Dante 回复:

    呵呵,解决了就好呀。
    其实那句这样改也不太对哦,
    看一下这篇文章吧,实际上就是VIM检测编码的一个问题~
    http://www.vimer.cn/2009/10/87.html
    希望对你有帮助

    [回复]

    saner69 回复:

    vim的脚本也能识别其他编码
    脚本最后一行加
    vim:fenc=XXXX

    [回复]

    MadPer 回复:

    只能是gbk的吗?我好像一直用的是utf-8的编码…

    [回复]

    Dante 回复:

    呃,我之前用utf-8就会设置不了中文字体……,可能和机器的环境变量有关吧……

    [回复]

  2. isunbo说道:

    已经在看了,改过来了,也知道那几个内置变量是什么意思了..

    [回复]

  3. iThink说道:

    推荐一款英文字体: Envy Code R

    截图及下载: http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released

    在vimrc中的配置如下:
    set guifont=Envy_Code_R_VS:h10:cANSI

    [回复]

    Dante 回复:

    呵呵,去看了下,的确很不错的一款字体,对编码中容易混淆的字体也做了区分,在10px时候看起来很不错~~

    [回复]

    simba 回复:

    有个报错:’guifontwide’ invalid,这个是怎么回事呀

    [回复]

    Dante 回复:

    有两种可能:
    1.vimrc中没有设置set enc=utf-8
    2.你的vimrc文件不是cp936编码的,vim认不出来

    [回复]

    justzx 回复:

    问题解决没啊?我也有这个错误

    [回复]

  4. 漫步说道:

    我喜欢用 YaHei.Consolas.1.12 这款字体, 哈哈…

    [回复]

    Dante 回复:

    这款字体的中文确实看起来非常舒服,我这几天又在家里改字体……主要是觉得12~14屏的字体还有优化的空间~~

    [回复]

    biglynx 回复:

    我也想用,可是怎么用捏

    [回复]

  5. 铁牛仔说道:

    我喜欢用Monaco字体,vimrc的设置如下:
    set guifont=Monaco:h12:w6.5
    不过就是中文显示的效果一般般。不知道是不是因为这个字体本身是不支持中文的缘故。

    [回复]

    Dante 回复:

    呃,是的,因为这些西方字体是不会涉及到双字节编码的,所以,只有英文字符被设计,而对中文字,系统会自动用默认的宋体。
    我这几天正在研究把雅黑调整一下,能够让gvim中的中文用雅黑显示,已经改的差不多,近期就打算发出来~~效果还不错,嘿嘿

    [回复]

  6. 易名说道:

      我用的修改后的yaheimono,不过字体调到了12号,大屏幕使用的话,我觉得还比较好。
    [img]http://6rbu7w.bay.livefilestore.com/y1phfcTEinsdE5Fv3JdkRvSxO0MmU-5ng_wvAtF_rbMEHQieqPgmDGAmjOSvpB5kzb0Ro7AExF0glnCuEkRhzjkMZOT-d7vaVUj/%E5%89%AA%E8%B4%B4%E6%9D%BF01.png[/img]

    [回复]

    Dante 回复:

    呀,看了下,字体的效果确实不错哦,
    我记得当时在10px的情况下,英文字体会变得有锯齿,而只用他的中文的话,在Vim中,英文字体和中文字体高度的偏移不一样,所以就没有再用它~

    [回复]

  7. hsiao说道:

    很好,不错! 使用幼圆看中文字体!

    [回复]

    Dante 回复:

    嘿嘿,的确不错滴~~~

    [回复]

  8. rand说道:

    linux下应该为
    set guifont=Arial\ monospaced\ for\ SAP\ 10
    set gfw=YouYuan\ 10

    [回复]

    Dante 回复:

    哦,这样啊,感谢指正。
    因为我在linux下用的话,一般都是ssh到服务器上去的,所以vimrc中的字体配置本身起不了作用……

    [回复]

    MadPer 回复:

    set gfw=open

    [回复]

    Dante 回复:

    哇,难道可以设置远程终端的中文字体吗?怎么设置呀?激动啊

    [回复]

    MadPer 回复:

    不成…这个,语句是我瞎写的…就是,防火长城设为开启….表激动….

    [回复]

  9. pisces说道:

    我用的是Lucida Console + 华文黑体
    截图见下
    http://twitpic.com/1eim14

    [回复]

    Dante 回复:

    杯具,可能我家里网络有问题,你的那个网址怎么都打不开……,我下了那个华文黑体,在windows下的gvim用不了呢,你是在linux下用的?

    [回复]

  10. fos说道:

    我改幼圆后,文本里的空格都变成一个个正方框了,怎么回事?是我有什么设置错了吗?盼复。

    [回复]

    fos 回复:

    多试了几个文本,有些会变,有些不会,奇怪了?!什么问题呢?改过编码了,也不行。
    原来用NSimSun就没有出现过。

    [回复]

    Dante 回复:

    因为其实对于空格来说是分两种的,你说的那种是双字节编码的空格,在幼圆中是显示为方块的,其实我倒觉得这样比较好,在copy别人的代码的时候,可以一眼发现空格的问题。

    [回复]

    fos 回复:

    谢谢!

    [回复]

  11. saner69说道:

    在vim中使用幼圆体,我也非常喜欢,但在使用中不知为何,会将全角空格显示成方框,一直没找到解决的办法,是不是字库中缺少全角空格,有没有工具可以编辑字体文件,自由添加内容的?

    [回复]

    Dante 回复:

    是有工具的,不过全角空格显示为方框,我倒真的觉得对编程来说是个优点……

    可以试一下fontcreator

    [回复]

    saner69 回复:

    我还用 Vim 做笔记日记等日常的文本处理,不只是写程式,所以有此烦恼,您说的 fontcreator 我下了一个
    但不知如何改幼圆体中的全角空格,另外在 VIM 的使用中还一个事情一直困扰着我,那就是中文的打印老
    是乱码,网上也没查到好的解决途径,不知您是否有良方,谢谢您的博客。

    [回复]

    Dante 回复:

    中文的打印老是乱码

    是什么意思呢?打印到纸上吗?我从来没有用过vim这个功能呢

    [回复]

    saner69 回复:

    就是打印到纸上,看来是我太执着了,想用一个工具解决所有问题,VIM 打印时能指定行号与行范围的功能真的很不错,只是……

    [回复]

    Dante 回复:

    哇哇,长见识啦~~~我从来没试过呢~~~

    呃,是不是文件的编码格式有问题呢?设置成cp936试一下?

    还有就是,介不介意把你的打印方法写出来,发到本博和大家分享一下呢?很期待呢

    [回复]

    saner69 回复:

    打印方法是很简单的:
    :hardcopy 打印全文
    :hardcopy! 不出打印面板,用默认打印机打印全文
    :23hardcopy 打印第23行
    :2,23hardcopy 打印2~23行

    另我重装了一下VIM,有毛病了,我的编码设置如下:
    set enc=utf-8
    set fenc=utf-8
    原先这样设置菜单是乱码的,需要重设菜单
    现在好了,真是奇了,另打印也好了
    与原先不同的是我下了官网的 iconv.dll 放在了vim\vim72 下了,是个编码转换库,不知是不是这个原因,有兴趣试试

    [回复]

    saner69 回复:

    但有个问题,原先>> 能输入一个与》差不多的半角字符,现在不行了,utf-8格式的文件如有一些gbk不支持的字符所有中文都显示乱码,不知如何解决。

    [回复]

    Dante 回复:

    呃,这个字符集的大小问题吧,你下载的幼圆字体文件多大呀?是不是少了很多字符呢……

    [回复]

  12. simba说道:

    Bitstream Vera Sans Mono大小设置成10的时候,小写的T太高了,明显不协调。大小设置成11反而更好些

    [回复]

    Dante 回复:

    会吗,我在公司电脑上都是设置成10的哦,感觉挺正常的……

    [回复]

    simba 回复:

    会的。我用的是win7u版,不知道跟这有没有关系

    [回复]

    simba 回复:

    你邮件地址是多少?我把截图发给你看看

    [回复]

    Dante 回复:

    呃,我是XP呢……dantezhu@vip.qq.com,发到这里吧~~

    [回复]

    simba 回复:

    不用了。谢谢。用了博主的雅黑forgvim后,设置set gfw=Yahei_Mono:h10:cGB2312就不再出现这个问题了。谢谢。

    [回复]

    Dante 回复:

    哈哈,好事好事~~~ happy viming~~

    [回复]

  13. poornigga说道:

    我想把英文字体设置成cautll, 中文字体设置成微软雅黑, 不知道能不能?如何设置,

    [回复]

    poornigga 回复:

    Catull设置了之后显示不出来效果,

    [回复]

    Dante 回复:

    呃,这个英文字体我没有试过,vim也不是所有字体都支持的~至于怎么设置,可以在我的博客搜索字体或者微软雅黑~

    [回复]

  14. MadPer说道:

    Bitstream Vera Sans Mono后来出了个改进版本,叫dejaVa Sans Mono吧,也不错的说~~

    [回复]

    Dante 回复:

    嗯啊,那个字体我用了一下,怎么也没有找出差别,所以就被删掉了……

    [回复]

    MadPer 回复:

    dejaVa Sans Mono添加了对utf-8中其他字符的支持,好像是…

    [回复]

  15. 小骆驼商队说道:

    我也喜欢幼圆体……

    [回复]

  16. zwwooooo说道:

    这配合很赞

    [回复]

  17. 江湖客说道:

    YaheiMono17*17屏幕不花。

    [回复]

    Dante 回复:

    呃,介个。。。不懂。。是说17的字体大小时,显示不清楚?

    [回复]

  18. cyanue说道:

    solaris下可以安装Bitstream Vera Sans Mono这个字体吗?

    [回复]

    Dante 回复:

    应该也是可以的,不过没有装过,上面介绍的都是在windows下安装的,linux的话可以试一下Inconsolata,据说是最漂亮的编程字体,在windows下用有点花,不过在linux下据说很完美。

    [回复]

  19. Ace说道:

    Linux下设置了好想不起作用阿 字体还是原来的

    [回复]

  20. lvyiwang说道:

    我比较喜欢Monospace和幼圆的组合,不过遇到问题了,一个上午也没有解决。(果然,高效的工具想驾驭也不容易啊,不过现在慢慢的体会到它的高效了。)
    我的问题是:
    ~/.vimrc设置成(节选自己认为的相关部分)
    set enc=utf-8
    set fencs=gbk,gb2312
    set gfw=幼圆
    set guifont=Monospace
    1,于是英文显示M的,中文显示幼圆的,不过幼圆的距离好像太大了。
    2,于是我试着改变gfw和guifont后面的参数,不过gwf后面无论加什么,幼圆就不能正常显示了。如果在guifont后面增加参数,那么英文和中文字体的间距就都变大了,无论如何都很难看啊。请问如何设置才能让幼圆和M显示正常,间距要很小的那种,就和你上面贴的一样。
    3,我之前用sudo apt-get install vim-gnome的gvim时,在insert状态下backspace是有效的,不过自从用vim7.3的源码安装后,backspace这个键就没用了,打字很不方便,每回要切换模式。
    还有,我非常喜欢你的博客^_^,尤其是和vim相关的部分,现在在学校努力学习编程和linux,以后也要用技术去帮助他人。最后,谢谢你和你的博客。

    [回复]

    Dante 回复:

    哈哈,不客气,欢迎交流~~

    幼圆的距离变大是因为等宽字体要求中文字的宽度是英文字的两倍,你设置的幼圆字体比较小,所以看起来就间距变大了。。可以把幼圆字体调大一些,不过那样估计就不美观了。。

    对于退格键,你可以试一下这个设置:

    [回复]

    lvyiwang 回复:

    好像基本明白了,谢谢!

    [回复]

  21. 伴随着你说道:

    前些天在winxp下用Gvim,想用新宋体怎么都不行,后来发现是_vimrc的文件类型的问题,简单的办法是用记事本另存为的时候文件编码改成ANSI就欧科了。xp里面新宋体显示还是很紧凑的。
    p.s. 我一直用ubuntu,vim字体是雅黑宋体。感觉不错~

    [回复]

    Dante 回复:

    我之前都是把vimrc存为cp936才能正常使用中文,后来其实也有个简单的方法,比如宋体就叫songti,可以试一下~~

    [回复]

    alan 回复:

    vimrc使用中文字体名无效的问题也困扰我一段时间了,原来是vimrc的编码问题;
    多谢楼上两位指点;

    现在用的是方正准圆+droid sans mono。

    [回复]

  22. 流云说道:

    请问:linux里vim 的字体应该放到哪个目录下?

    [回复]

    依云 回复:

    ~/.fonts

    [回复]

  23. 说道:

    你好,请问一下,按照你的方法设置字体,就是字母和汉字设置不同字体。

    可我这里不行
    set fencs=gbk
    set gfw=幼圆:h12:cGB2312
    “set gfw=幼圆:h10:cANSI
    set guifont=Arial_monospaced_for_SAP:h9:cANSI

    打开字体菜单后,当前选择的是幼圆,但要点一下确定,才会变成幼圆,请指导一下,谢谢

    [回复]

    Dante 回复:

    呃,这个问题我还真没遇到过。。。是在windows下吗?

    [回复]

    回复:

    是的,在windows下啊

    [回复]

    华年锦时 回复:

    我也是同样的问题,百思不得其解

    [回复]

  24. nbsp说道:

    你好站长,我用vim没多长时间,有几个问题想像您请教下。
    1:关于插件怎么安装?除了在配置文件设置外;是直接复制到安装目录下的某些目录还是怎么?
    2:那个字体文件直接复制到系统的字体目录下还是gvim下。

    [回复]

    Dante 回复:

    1.放到对应的目录就可以
    2.是要装到系统中。。

    [回复]

  25. nbsp说道:

    感谢dante百忙之中的回复,我以后会一直来的,

    [回复]

  26. isprin说道:

    中文字体是方正幼圆还是微软幼圆

    [回复]

  27. carry说道:

    按文章1条说得,配得效果出乎意料的好!字体大小都为12,十分感谢博主

    [回复]

  28. leyafo说道:

    谢谢楼主,你给的字体很好用.

    [回复]

  29. liu说道:

    你好~我是win7系统,安装了gvim后在_vimrc中没有:set fenc
    set nocompatible
    source $VIMRUNTIME/vimrc_example.vim
    source $VIMRUNTIME/mswin.vim
    behave mswin

    set diffexpr=MyDiff()
    function MyDiff()
    let opt = ‘-a –binary ‘
    if &diffopt =~ ‘icase’ | let opt = opt . ‘-i ‘ | endif
    if &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 &sh =~ ‘\ ‘ . arg3 . eq
    endfunction
    您看应该怎么弄?谢谢

    [回复]

  30. 异类深呼吸说道:

    依云你的邮箱地址能发我下么,我看了你的文章有些地方照做了检查也没什么问题了,但是出不来你的效果,所以想请教下,VIM新人

    [回复]

  31. aptx4869说道:

    关于Arial monospaced for SAP两个版本,有个问题必须报告一下
    博主说过“这个字体中的*很靠上,而且()等符号和字母并没有持平,所以看起来很是别扭,所以笔者自己更改了一下”

    我在linux下没有用gvim,而是直接在terminal 里面用这字体。一开始用的是修改过的版本,结果会出现[ ] { }等符号过于靠上以至于上段修饰被吃掉的情况,我还以为是fonts.config什么的问题折腾了好久也没弄好……今天突然想起还有两个版本这茬,心想会不会是博主链接放反了,于是下来试了一下,结果被吃掉的部分又出来了……

    不过这原版符号的对齐确实也有问题,和博主说的一样*很靠上什么的,[]{}没对齐什么的,结果最后忍无可忍,祭出必杀FontForge什么的……

    总结就是博主的修改跟我的系统不兼容,在term里面脑袋被吃掉了,所以根据自己的情况修改字体吧 XD

    [回复]

  32. findingsea说道:

    博主,我在vimrc下配置如下:
    set guifont=Consolas:h12:cANSI
    set guifontwide=YouYuan:h12:cGB2312
    set gfw=YouYuan:h12:cGB2312
    环境是windows xp
    版本是7.3
    但是没有效果,英文字体是consolas,但是中文字体不是幼圆。
    包括
    set guifontwide=幼圆:h12:cGB2312
    set gfw=幼圆:h12:cGB2312
    我也试过了,还是一样。
    博主知道这是为什么吗?

    [回复]

    Dante 回复:

    guifontwide = gfw,写一个就行,不过不生效的确很怪,你 :set guifont=*,手动选择一下,然后 :set guifont,看一下值是什么

    [回复]

    findingsea 回复:

    set guifont是有效的,但是set guifontwide不行,就算在vimrc里面写了,命令模式下:set guifontwide还是为空的

    [回复]

    Joe Ge 回复:

    很棒,终于解决我的问题不。谢谢。

    [回复]

  33. [...] 可以看看这个,这个,然后为了兼容性我选了最土的那个…… 苹果的字体好漂亮……好想要…… [...]

  34. sailor说道:

    下载不了。。

    [回复]

发表评论