Vim(gvim)编程字体推荐
网上从来不缺编程字体推荐的文章,当然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,加上配色非常舒服,不会有锯齿感
缺点:
说真的,没有。
截图:
2)中文字体
名字:幼圆
大小:10.5(呵呵,真的是10.5,而不是10或者11,只能通过配置文件来实现)
在vimrc中的配置如下:
set gfw=幼圆:h10.5:cGB2312
优点:
a)词库全
b)字体光滑,且支持cleartype
c)字体偏移与Bitstream Vera Sans Mono持平
截图:
下载:
幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者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(原版)
2)中文字体
名字:幼圆
大小:10
在vimrc中的配置如下:
set gfw=幼圆:h10:cGB2312
优点:
a)词库全
b)字体光滑,且支持cleartype
c)也只有这个字体能够在12~14英寸屏上依旧显的很精致,和Arial monospaced for SAP相互映衬,感觉非常好
截图:

下载:
幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者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
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=396



.png)
你好,我安装了你介绍的字体,英文显示效果很好但是幼圆字体配置不了,提示”无效的guifontwide”.百度和Google也没得到结果.请问要怎么办呢?
麻烦了,我刚接触gVim.
我现在把gfw改成Fixedsys了:)
[回复]
Dante 回复:
十一月 2nd, 2009 at 9:07 下午
是这样的,估计你的vimrc文件不是gbk编码吧,vim的脚本编码识别只能支持gbk。
按照如下操作试一下:
1.打开vimrc
2.:set fenc=gbk
3.:w
然后把guifontwide改成幼圆字体就可以啦~
[回复]
isunbo 回复:
十一月 2nd, 2009 at 9:25 下午
谢谢!问题解决了.
原来是
fenc=gbk,ucs-bom,utf-8,chinese,latin-1
现在改成了
fenc=ucs-bom,utf-8,gbk,latin-1
也不知道文字编码的顺序放的对不对.
网站的文章我会都看一遍的.
[回复]
Dante 回复:
十一月 2nd, 2009 at 9:32 下午
呵呵,解决了就好呀。
其实那句这样改也不太对哦,
看一下这篇文章吧,实际上就是VIM检测编码的一个问题~
http://www.vimer.cn/2009/10/87.html
希望对你有帮助
[回复]
saner69 回复:
四月 23rd, 2010 at 1:12 下午
vim的脚本也能识别其他编码
脚本最后一行加
vim:fenc=XXXX
[回复]
MadPer 回复:
五月 10th, 2010 at 8:23 上午
只能是gbk的吗?我好像一直用的是utf-8的编码…
[回复]
Dante 回复:
五月 10th, 2010 at 9:45 上午
呃,我之前用utf-8就会设置不了中文字体……,可能和机器的环境变量有关吧……
[回复]
已经在看了,改过来了,也知道那几个内置变量是什么意思了..
[回复]
推荐一款英文字体: 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 回复:
十一月 3rd, 2009 at 4:58 下午
呵呵,去看了下,的确很不错的一款字体,对编码中容易混淆的字体也做了区分,在10px时候看起来很不错~~
[回复]
simba 回复:
四月 22nd, 2010 at 1:35 下午
有个报错:’guifontwide’ invalid,这个是怎么回事呀
[回复]
Dante 回复:
四月 22nd, 2010 at 1:55 下午
有两种可能:
1.vimrc中没有设置set enc=utf-8
2.你的vimrc文件不是cp936编码的,vim认不出来
[回复]
我喜欢用 YaHei.Consolas.1.12 这款字体, 哈哈…
[回复]
Dante 回复:
十一月 3rd, 2009 at 11:00 下午
这款字体的中文确实看起来非常舒服,我这几天又在家里改字体……主要是觉得12~14屏的字体还有优化的空间~~
[回复]
biglynx 回复:
七月 5th, 2011 at 5:19 下午
我也想用,可是怎么用捏
[回复]
我喜欢用Monaco字体,vimrc的设置如下:
set guifont=Monaco:h12:w6.5
不过就是中文显示的效果一般般。不知道是不是因为这个字体本身是不支持中文的缘故。
[回复]
Dante 回复:
十一月 7th, 2009 at 11:44 下午
呃,是的,因为这些西方字体是不会涉及到双字节编码的,所以,只有英文字符被设计,而对中文字,系统会自动用默认的宋体。
我这几天正在研究把雅黑调整一下,能够让gvim中的中文用雅黑显示,已经改的差不多,近期就打算发出来~~效果还不错,嘿嘿
[回复]
我用的修改后的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 回复:
十一月 9th, 2009 at 1:52 下午
呀,看了下,字体的效果确实不错哦,
我记得当时在10px的情况下,英文字体会变得有锯齿,而只用他的中文的话,在Vim中,英文字体和中文字体高度的偏移不一样,所以就没有再用它~
[回复]
很好,不错! 使用幼圆看中文字体!
[回复]
Dante 回复:
十一月 10th, 2009 at 2:18 下午
嘿嘿,的确不错滴~~~
[回复]
linux下应该为
set guifont=Arial\ monospaced\ for\ SAP\ 10
set gfw=YouYuan\ 10
[回复]
Dante 回复:
四月 8th, 2010 at 9:54 上午
哦,这样啊,感谢指正。
因为我在linux下用的话,一般都是ssh到服务器上去的,所以vimrc中的字体配置本身起不了作用……
[回复]
MadPer 回复:
五月 10th, 2010 at 8:26 上午
set gfw=open
…
[回复]
Dante 回复:
五月 10th, 2010 at 9:43 上午
哇,难道可以设置远程终端的中文字体吗?怎么设置呀?激动啊
[回复]
MadPer 回复:
五月 15th, 2010 at 11:41 下午
不成…这个,语句是我瞎写的…就是,防火长城设为开启….表激动….
[回复]
我用的是Lucida Console + 华文黑体
截图见下
http://twitpic.com/1eim14
[回复]
Dante 回复:
四月 10th, 2010 at 6:50 下午
杯具,可能我家里网络有问题,你的那个网址怎么都打不开……,我下了那个华文黑体,在windows下的gvim用不了呢,你是在linux下用的?
[回复]
我改幼圆后,文本里的空格都变成一个个正方框了,怎么回事?是我有什么设置错了吗?盼复。
[回复]
fos 回复:
四月 16th, 2010 at 12:05 上午
多试了几个文本,有些会变,有些不会,奇怪了?!什么问题呢?改过编码了,也不行。
原来用NSimSun就没有出现过。
[回复]
Dante 回复:
四月 16th, 2010 at 9:57 上午
因为其实对于空格来说是分两种的,你说的那种是双字节编码的空格,在幼圆中是显示为方块的,其实我倒觉得这样比较好,在copy别人的代码的时候,可以一眼发现空格的问题。
[回复]
fos 回复:
四月 17th, 2010 at 9:26 上午
谢谢!
[回复]
在vim中使用幼圆体,我也非常喜欢,但在使用中不知为何,会将全角空格显示成方框,一直没找到解决的办法,是不是字库中缺少全角空格,有没有工具可以编辑字体文件,自由添加内容的?
[回复]
Dante 回复:
四月 20th, 2010 at 9:30 上午
是有工具的,不过全角空格显示为方框,我倒真的觉得对编程来说是个优点……
可以试一下fontcreator
[回复]
saner69 回复:
四月 21st, 2010 at 6:06 下午
我还用 Vim 做笔记日记等日常的文本处理,不只是写程式,所以有此烦恼,您说的 fontcreator 我下了一个
但不知如何改幼圆体中的全角空格,另外在 VIM 的使用中还一个事情一直困扰着我,那就是中文的打印老
是乱码,网上也没查到好的解决途径,不知您是否有良方,谢谢您的博客。
[回复]
Dante 回复:
四月 21st, 2010 at 6:23 下午
中文的打印老是乱码
是什么意思呢?打印到纸上吗?我从来没有用过vim这个功能呢
[回复]
saner69 回复:
四月 21st, 2010 at 7:14 下午
就是打印到纸上,看来是我太执着了,想用一个工具解决所有问题,VIM 打印时能指定行号与行范围的功能真的很不错,只是……
[回复]
Dante 回复:
四月 21st, 2010 at 8:03 下午
哇哇,长见识啦~~~我从来没试过呢~~~
呃,是不是文件的编码格式有问题呢?设置成cp936试一下?
还有就是,介不介意把你的打印方法写出来,发到本博和大家分享一下呢?很期待呢
[回复]
saner69 回复:
四月 23rd, 2010 at 1:02 下午
打印方法是很简单的:
:hardcopy 打印全文
:hardcopy! 不出打印面板,用默认打印机打印全文
:23hardcopy 打印第23行
:2,23hardcopy 打印2~23行
另我重装了一下VIM,有毛病了,我的编码设置如下:
set enc=utf-8
set fenc=utf-8
原先这样设置菜单是乱码的,需要重设菜单
现在好了,真是奇了,另打印也好了
与原先不同的是我下了官网的 iconv.dll 放在了vim\vim72 下了,是个编码转换库,不知是不是这个原因,有兴趣试试
[回复]
saner69 回复:
四月 23rd, 2010 at 1:06 下午
但有个问题,原先>> 能输入一个与》差不多的半角字符,现在不行了,utf-8格式的文件如有一些gbk不支持的字符所有中文都显示乱码,不知如何解决。
[回复]
Dante 回复:
四月 23rd, 2010 at 11:18 下午
呃,这个字符集的大小问题吧,你下载的幼圆字体文件多大呀?是不是少了很多字符呢……
[回复]
Bitstream Vera Sans Mono大小设置成10的时候,小写的T太高了,明显不协调。大小设置成11反而更好些
[回复]
Dante 回复:
四月 22nd, 2010 at 1:54 下午
会吗,我在公司电脑上都是设置成10的哦,感觉挺正常的……
[回复]
simba 回复:
四月 22nd, 2010 at 2:05 下午
会的。我用的是win7u版,不知道跟这有没有关系
[回复]
simba 回复:
四月 22nd, 2010 at 2:12 下午
你邮件地址是多少?我把截图发给你看看
[回复]
Dante 回复:
四月 22nd, 2010 at 2:17 下午
呃,我是XP呢……dantezhu@vip.qq.com,发到这里吧~~
[回复]
simba 回复:
四月 22nd, 2010 at 2:16 下午
不用了。谢谢。用了博主的雅黑forgvim后,设置set gfw=Yahei_Mono:h10:cGB2312就不再出现这个问题了。谢谢。
[回复]
Dante 回复:
四月 22nd, 2010 at 2:18 下午
哈哈,好事好事~~~ happy viming~~
[回复]
我想把英文字体设置成cautll, 中文字体设置成微软雅黑, 不知道能不能?如何设置,
[回复]
poornigga 回复:
四月 25th, 2010 at 10:21 上午
Catull设置了之后显示不出来效果,
[回复]
Dante 回复:
四月 25th, 2010 at 2:34 下午
呃,这个英文字体我没有试过,vim也不是所有字体都支持的~至于怎么设置,可以在我的博客搜索字体或者微软雅黑~
[回复]
Bitstream Vera Sans Mono后来出了个改进版本,叫dejaVa Sans Mono吧,也不错的说~~
[回复]
Dante 回复:
五月 4th, 2010 at 10:18 下午
嗯啊,那个字体我用了一下,怎么也没有找出差别,所以就被删掉了……
[回复]
MadPer 回复:
五月 10th, 2010 at 8:29 上午
dejaVa Sans Mono添加了对utf-8中其他字符的支持,好像是…
[回复]
我也喜欢幼圆体……
[回复]
这配合很赞
[回复]
YaheiMono17*17屏幕不花。
[回复]
Dante 回复:
九月 9th, 2010 at 3:53 下午
呃,介个。。。不懂。。是说17的字体大小时,显示不清楚?
[回复]
solaris下可以安装Bitstream Vera Sans Mono这个字体吗?
[回复]
Dante 回复:
一月 27th, 2011 at 1:09 下午
应该也是可以的,不过没有装过,上面介绍的都是在windows下安装的,linux的话可以试一下Inconsolata,据说是最漂亮的编程字体,在windows下用有点花,不过在linux下据说很完美。
[回复]
Linux下设置了好想不起作用阿 字体还是原来的
[回复]
我比较喜欢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 回复:
四月 4th, 2011 at 11:45 上午
哈哈,不客气,欢迎交流~~
幼圆的距离变大是因为等宽字体要求中文字的宽度是英文字的两倍,你设置的幼圆字体比较小,所以看起来就间距变大了。。可以把幼圆字体调大一些,不过那样估计就不美观了。。
对于退格键,你可以试一下这个设置:
[回复]
lvyiwang 回复:
四月 5th, 2011 at 12:34 上午
好像基本明白了,谢谢!
[回复]
前些天在winxp下用Gvim,想用新宋体怎么都不行,后来发现是_vimrc的文件类型的问题,简单的办法是用记事本另存为的时候文件编码改成ANSI就欧科了。xp里面新宋体显示还是很紧凑的。
p.s. 我一直用ubuntu,vim字体是雅黑宋体。感觉不错~
[回复]
Dante 回复:
四月 4th, 2011 at 11:34 上午
我之前都是把vimrc存为cp936才能正常使用中文,后来其实也有个简单的方法,比如宋体就叫songti,可以试一下~~
[回复]
alan 回复:
五月 22nd, 2011 at 10:50 上午
vimrc使用中文字体名无效的问题也困扰我一段时间了,原来是vimrc的编码问题;
多谢楼上两位指点;
现在用的是方正准圆+droid sans mono。
[回复]
请问:linux里vim 的字体应该放到哪个目录下?
[回复]
依云 回复:
六月 14th, 2011 at 4:48 下午
~/.fonts
[回复]
你好,请问一下,按照你的方法设置字体,就是字母和汉字设置不同字体。
可我这里不行
set fencs=gbk
set gfw=幼圆:h12:cGB2312
“set gfw=幼圆:h10:cANSI
set guifont=Arial_monospaced_for_SAP:h9:cANSI
打开字体菜单后,当前选择的是幼圆,但要点一下确定,才会变成幼圆,请指导一下,谢谢
[回复]
Dante 回复:
七月 12th, 2011 at 6:29 下午
呃,这个问题我还真没遇到过。。。是在windows下吗?
[回复]
云 回复:
七月 12th, 2011 at 8:36 下午
是的,在windows下啊
[回复]
华年锦时 回复:
十一月 29th, 2011 at 8:21 上午
我也是同样的问题,百思不得其解
[回复]
你好站长,我用vim没多长时间,有几个问题想像您请教下。
1:关于插件怎么安装?除了在配置文件设置外;是直接复制到安装目录下的某些目录还是怎么?
2:那个字体文件直接复制到系统的字体目录下还是gvim下。
[回复]
Dante 回复:
八月 5th, 2011 at 12:30 上午
1.放到对应的目录就可以
2.是要装到系统中。。
[回复]
感谢dante百忙之中的回复,我以后会一直来的,
[回复]
中文字体是方正幼圆还是微软幼圆
[回复]
按文章1条说得,配得效果出乎意料的好!字体大小都为12,十分感谢博主
[回复]
谢谢楼主,你给的字体很好用.
[回复]
你好~我是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
您看应该怎么弄?谢谢
[回复]