代码改变世界

什么是好的编程字体:等宽字体

2010-07-30 16:55  Johnny Qian  阅读(4683)  评论(0编辑  收藏  举报

作为程序开发者,每天打交道最多的就是程序代码了,而每天读写几千行的代码让眼睛很容易产生疲劳,我自己对此已经是深恶痛绝了.为了保护自己眼睛同时提高自己的代码读写效率,显然是要从显示程序代码的字体入手.下面讲讲我编程多年以来代码字体的选择之路.

目前很多人都还在使用宋体作为自己IDE的程序显示字体,这个字体英文和数字的显示显然让我不敢恭维,看上十五分钟眼睛都酸胀到不行...

 附件[ematt:67] 宋体

宋体代码显示样子,单独看估计也看不出什么效果

我对编程字体的要求比较高:字体大小要适中、字体必须是等宽,能轻松的分辨0,O,间距适中,才方便识别的条件下尽可能的显示更多的代码行数,下面就是我的个人比较推荐的等宽编程字体:

首先出场:Courier New

 附件[ematt:68]

Courier New 是老牌的经典等宽编程字体了,Windows系统自带,很多代码编辑器默认的字体都是它,程序的教科书上也能经常看到它的身影。经典归经典但是我却不太喜欢它,用10px的吧,无论是液晶还是CRT显示器下都显的毛呼呼的,辨认起来很困难眼睛容易疲劳,用11px吧,字体几乎大了50%,本来字体间距就很宽,一变大,屏幕可视范围内无论是横向还是纵向就没有多少代码能看到了。没办法,用了一段时间后淘汰了它。

 

Fixedsys

 附件[ematt:69] Fixedsys

Fixedsys是和Courier New一样经典的字体,Windows系统自带,很多开发者都在用它,它属于点阵型字体,方方正正。但是由于是点阵字体,字体很粗且符号显示很难看,特别是复杂点的正则表达式读起来真是要我命3000.用了一段时间后淘汰...继续寻找。。

Consolas

 附件[ematt:70] consolas

Consolas是2005年微软随着VS.NET 2005发布的一款专用编程字体,凭着“专用”这2个字就让我使用了它很久,等宽,字体粗细均匀,用起来的确很不错。不过很可惜它也没让我坚持下来,原因有下:11px大小下粗体爆丑,完全和不粗的时候是2个样子,感觉就像发福了的美女。然后括号过高,多行代码开起来没有整齐的美感(天哪,我太完美主义了。。),在我变态的要求下,Consolas也被我pass了

Lucida Console

 附件[ematt:71] Lucida Console

Lucida Console也是Windows自带的一款经典等宽字体,字体大小适中,字形美观大方,我看到时非常喜欢,但是使用一段时间后发现一个严重的问题:字行距太紧,2行代码之间几乎只有1px的距离,看多行代码时感觉一堆字符挤在一起十分难受,没办法,淘汰。。。

Monaco

附件[ematt:72] monaco

Monaco据说是来自Mac的一位美女,认识她时我就深深的喜欢上了它,优雅的字体和符号让我使用了很久,但是用久了以后苛刻的我又挑出2个理由淘汰了它:字体过于细长,比起其他的字体识别起来要长,长时间阅读容易疲劳。字体行距距过长,与Lucida Console相反,Monaco行距相当高,加上字体本身就是细长的,导致一个页面显示行数比其他字体最多少出10行之多,每天我就不知道要多转多少次鼠标滚轮,所以。。淘汰。。

最后 Lucida Sans Typewriter

 附件[ematt:73] Lucida Sans Typewriter

 它与Lucida Console本是同根生,拥有着Lucida家族的所有长处,而且最好的地方就是解决了Lucida  Console行距过短的问题,它无论是大小,可读性,美观我都无可挑剔,而且先前那些字体的不足它全部都没有。目前我将所有的编辑器的字体都设置为  Lucida Sans Typewriter ,不知道在未来我是否能够在它身上找出问题,但是至少它是我觉得最好的编程字体,现在我会一直使用它的。。

 

附录:

编程用字体选择标准:
1. 所有字符等宽;
2. 简洁、清晰、规范的字符形体;
3. 支持ASCII码为128以上的扩展字符集;
4. 空白字符(ASCII: 0x20)与其他字符等宽;
5. '1'、'l'和'i'等三个字符易于区分;
6. '0'、'o'和'O'等三个字符易于区分;
7. 双引号、单引号的前后部分易于区分,最好是镜像对称的;
8. 清晰的标点符号外形,尤其是大括符、圆括符和方括符。

转自:http://be-evil.org/post-42.html