字体不仅是设计师手中重要的武器,对我们开发人员来说,字体的选择也有许多讲究,一个好的、适合展示代码的字体,应该具备以下要素:
- 等宽的字符
- 简洁、清晰并且规范的字符形状
- 支持ASCII码为128以上的扩展字符集
- 与字符同等宽度的空格
- 易于分辨的小写字母l、大写字母I、数字1和符号|
- 易于分辨的大写字母O和数字0
- 易于分辨的前引号和后引号,最好能够前后对称
- 易于分辨的其他标点符号,尤其是大括号、中括号、小括号和尖括号
- 良好的中文支持和显示
下图展示了一个极端的反例,虽然很有个性,但并不适合用来显示代码。它的大写字母大的可怕,小写字母却小的可怜;字符不仅不清晰,而且不规范;小写字母l、大写字母I、数字1和符号| 难以分辨;大写字母O和数字0难以分辨;标点符号还凑合,只是下划线为什么是断开的?
当然,这个反例的确有些夸张,但其上文所列举的条件是比较苛刻的,我们在选择字体时没有必要非要完全满足所有条件,事实上这种字体也是凤毛麟角。下文所分享的一些字体也并没有完全满足所有条件,我们发现,只要满足了其中一些关键条件,用来显示代码就已经很不错了。
在Visual Studio中,更改编辑器的字体是件简单的事情,选择菜单【工具】【选项】,在弹出的“选项”对话框中依次选择“环境”和“字体和颜色”,然后在“显示其设置”中选择“文本编辑器”,最后在“字体”中选择字体就可以了,如下图所示:
在上图中,我们发现Visual Studio已经将等宽字体用粗体标识了出来,这样做是为了让我们更容易找到等宽的字体,并不表示等宽字体就一定适合显示代码,比如下图所示的“新宋体”就是一个反例:
在新宋体中,数字0之比大写字母O瘦那么一点点,小写字母l和数字1也十分相像,幸亏配色方案能够颜色将它们区别开来,否则实在难以分辨。这也从另一个角度说明了配色方案与字体是相辅相成的,搭配恰当时,会让代码更加清晰易辨。
下面就和大家分享一些在编程界声名烜赫的字体,截图所采用的配色方案为HumaneStudio,展示顺序为字体首字母升序。这些字体可能乍一看都一样,但仔细品味,还是能够发现不同的味道,希望大家都能找到适合自己的字体。
Andale Mono,演示字号为14,猛击这里下载:
Anonymous Pro,演示字号为14,猛击这里下载:
Bitstream Vera Sans Mono,演示字号为14,猛击这里下载:
Consolas,演示字号为14,Windows或Visual Studio已内置:
Courier New,演示字号为14,Windows已内置:
DejaVu Sans Mono,演示字号为14,猛击这里下载:
Envy Code R,演示字号为16,猛击这里下载:
Inconsolata,演示字号为16,猛击这里下载:
Share TechMono,演示字号为16,猛击这里下载:
注:此字体似乎会将连在一起的fl显示为一个点,不建议使用,可惜可惜。
尾注:
- 本文所分享的字体均支持ClearType。
- 从评论来看,中文的显示的确是一个影响美观的重要因素,所以产生了许多微软雅黑和一些优秀英文字体的混合版,但其实还有一种方法可以快速而简单的实现用不同的字体显示中英文(感谢DiryBoy提醒),方法如下:
- 用文本编辑器打开%AppData%\Microsoft\VisualStudio\9.0\VsFontLk.dat;
- 将0804一行修改为需要的中文字体,格式为“0804|中文字体名称”,比如“0804|微软雅黑”;