让代码看起来更舒服(2):选择适合的字体

上一篇文章我和大家分享了一些Visual Studio的配色方案,以及一个用来生成配色方案的网页版工具,现在我再来和大家分享一下Visual Studio的字体设置。

字体不仅是设计师手中重要的武器,对我们开发人员来说,字体的选择也有许多讲究,一个好的、适合展示代码的字体,应该具备以下要素:

  • 等宽的字符
  • 简洁、清晰并且规范的字符形状
  • 支持ASCII码为128以上的扩展字符集
  • 与字符同等宽度的空格
  • 易于分辨的小写字母l、大写字母I、数字1和符号|
  • 易于分辨的大写字母O和数字0
  • 易于分辨的前引号和后引号,最好能够前后对称
  • 易于分辨的其他标点符号,尤其是大括号、中括号、小括号和尖括号
  • 良好的中文支持和显示

下图展示了一个极端的反例,虽然很有个性,但并不适合用来显示代码。它的大写字母大的可怕,小写字母却小的可怜;字符不仅不清晰,而且不规范;小写字母l、大写字母I、数字1和符号| 难以分辨;大写字母O和数字0难以分辨;标点符号还凑合,只是下划线为什么是断开的?

image

当然,这个反例的确有些夸张,但其上文所列举的条件是比较苛刻的,我们在选择字体时没有必要非要完全满足所有条件,事实上这种字体也是凤毛麟角。下文所分享的一些字体也并没有完全满足所有条件,我们发现,只要满足了其中一些关键条件,用来显示代码就已经很不错了。

在Visual Studio中,更改编辑器的字体是件简单的事情,选择菜单【工具】【选项】,在弹出的“选项”对话框中依次选择“环境”和“字体和颜色”,然后在“显示其设置”中选择“文本编辑器”,最后在“字体”中选择字体就可以了,如下图所示:

image

在上图中,我们发现Visual Studio已经将等宽字体用粗体标识了出来,这样做是为了让我们更容易找到等宽的字体,并不表示等宽字体就一定适合显示代码,比如下图所示的“新宋体”就是一个反例:

image

在新宋体中,数字0之比大写字母O瘦那么一点点,小写字母l和数字1也十分相像,幸亏配色方案能够颜色将它们区别开来,否则实在难以分辨。这也从另一个角度说明了配色方案与字体是相辅相成的,搭配恰当时,会让代码更加清晰易辨。

下面就和大家分享一些在编程界声名烜赫的字体,截图所采用的配色方案为HumaneStudio,展示顺序为字体首字母升序。这些字体可能乍一看都一样,但仔细品味,还是能够发现不同的味道,希望大家都能找到适合自己的字体。

Andale Mono,演示字号为14,猛击这里下载

image

 

Anonymous Pro,演示字号为14,猛击这里下载

image

 

Bitstream Vera Sans Mono,演示字号为14,猛击这里下载

image

 

Consolas,演示字号为14,Windows或Visual Studio已内置:

image

 

Courier New,演示字号为14,Windows已内置:

image

 

DejaVu Sans Mono,演示字号为14,猛击这里下载

image

 

 

Envy Code R,演示字号为16,猛击这里下载

image

 

Inconsolata,演示字号为16,猛击这里下载

image

 

Monaco,演示字号为12,猛击这里下载

image

 

Monofur,演示字号为16,猛击这里下载

image

 

Progmata,演示字号为14,猛击这里下载

image

 

Share TechMono,演示字号为16,猛击这里下载

注:此字体似乎会将连在一起的fl显示为一个点,不建议使用,可惜可惜。

image

尾注:

  • 本文所分享的字体均支持ClearType。
  • 从评论来看,中文的显示的确是一个影响美观的重要因素,所以产生了许多微软雅黑和一些优秀英文字体的混合版,但其实还有一种方法可以快速而简单的实现用不同的字体显示中英文(感谢DiryBoy提醒),方法如下:
    • 用文本编辑器打开%AppData%\Microsoft\VisualStudio\9.0\VsFontLk.dat;
    • 将0804一行修改为需要的中文字体,格式为“0804|中文字体名称”,比如“0804|微软雅黑”;
7
0
(请您对文章做出评价)
« 上一篇:让代码看起来更舒服(1):选择适合的配色方案(更新配色方案生成器)
» 下一篇:Windstyle SlugHelper for Windows Live Writer发布

posted on 2009-11-23 08:29 Windie Chai 阅读(5988) 评论(64)  编辑 收藏 网摘 所属分类: Software

评论

#1楼 2009-11-23 08:33 Artech      

一直用Consolas!   回复  引用  查看    

#2楼 2009-11-23 08:39 Jerry Chou      

Courier New--是我最常用的字体。
坦白说,VS默认的字体就很不错。
大多VS的单个文件代码都较长,所以用这种字体,单位面积内能看见更多的内容。

若是写脚本的话,那倒是可以用一些比较“花”一点的字体。
  回复  引用  查看    

#4楼 2009-11-23 08:41 佛祖      

膜拜   回复  引用  查看    

#5楼[楼主] 2009-11-23 08:44 Windie Chai      

@Jerry Chou
同意,其实在同一字号下,上述字体的抗衡占用面积和清晰度也不比Courier New差哦。
  回复  引用  查看    

#6楼 2009-11-23 09:02 (*^__^*)      

编辑器,个人比较喜好Verdana字体,10号大小就行。舒服!
输出用经典的黑屏白字!
  回复  引用  查看    

#7楼 2009-11-23 09:11 Jeffrey Zhao      

我到处用Consolas   回复  引用  查看    

#8楼 2009-11-23 09:12 绯雨      

一直用consolas微软雅黑的整合字体   回复  引用  查看    

#9楼 2009-11-23 09:16 我不只是糊涂      

最舒服的是8楼所说的,我也一直用,不管是中文还是英文都是等宽的!排列整齐,看的清晰明了!   回复  引用  查看    

#10楼 2009-11-23 09:18 _龙猫      

我们都用Microsoft jhenghei   回复  引用  查看    

#11楼 2009-11-23 09:21 HadesWong      

我觉得用作代码的字体还要考虑的中文的显示,
我个人推荐最好是 中文字体 和 英文字体 整合后的字体,
我之前用过Consolas字体,英文就可以,不过中文的话用的应该还是宋体,而且字体偏大,所以看起来不是很协调,后来在网上找了一个别人把 微软雅黑 和 Consolas 整合后的字体,看起来就好很多,,
  回复  引用  查看    

#12楼[楼主] 2009-11-23 09:22 Windie Chai      

@_龙猫
正黑和雅黑除了中文部分之外,应该没有差别吧,关键是正黑不是等宽字体,在代码“排版”是不甚方便。
  回复  引用  查看    

#13楼[楼主] 2009-11-23 09:24 Windie Chai      

@HadesWong
同意,我见过你所说的字体,使用上述字体的话,因为字体中没有包含中文字体,就会使用默认的宋体,的确难看得很。
虽然我在列举优秀编程字体所应具备的条件时特别增加了中文字体的显示,但事实上几乎不存在这样的原生字体,所以使用一些整合字体也是一个不错的选择。
  回复  引用  查看    

#14楼 2009-11-23 09:25 李森 - listen      

个人觉得微软的 “新宋体 + 9号字 + AssistX的默认颜色”还是最顺眼的   回复  引用  查看    

#15楼 2009-11-23 09:28 .netlover      

换来换去还是Consolas看着舒服呀。。。。   回复  引用  查看    

#16楼 2009-11-23 09:40 missdeer[未注册用户]

试了试,似乎VS里看到的效果跟这图上的不一样,没这图上的感觉舒服……   回复  引用    

#17楼 2009-11-23 09:40 oec2003      

我现在用的就是Consolas字体+自定义的黄色背景   回复  引用  查看    

#19楼 2009-11-23 09:47 张亚      

Consolas 11号
  回复  引用  查看    

#20楼 2009-11-23 09:48 怪客      

Consolas 好啊。。。。代码写的也俏皮点
  回复  引用  查看    

#21楼[楼主] 2009-11-23 09:54 Windie Chai      

@怪客
@张亚
@oec2003
@.netlover
@绯雨
@Jeffrey Zhao
@Artech
支持,Consolas的确是一款非常优秀的字体,显示代码的效果卓越!在国外也是备受好评的。
  回复  引用  查看    

#22楼 2009-11-23 09:57 zqliyj      

Fixedsys
一直用这个
  回复  引用  查看    

#23楼 2009-11-23 10:06 One Newbie      

你推荐的字体都好丑...我肯定不会用的.
我只喜欢Tahoma,紧凑美观,不浪费字符间的空白,相同长度显示信息
较多.偶尔用用Verdana.
即使对中文支持不好也认了
而且,vs里可以混用中英字体,博主你要介绍下相关方法哟
  回复  引用  查看    

#24楼 2009-11-23 10:19 xiaotie      

我用 Courier New   回复  引用  查看    

#25楼[楼主] 2009-11-23 10:19 Windie Chai      

@One Newbie
呃,仁者见仁,智者见智吧,Tahoma和Verdana都是不错的字体,Windows内置,但每种字体所适合的场景是不一样的,它们都不是等宽字体,也没有专门对代码中容易混淆的字符做优化,当然,是否能够将每种字符清晰的分开,并不是对所有人来说都很重要,所以,嗯,这是你的选择。
  回复  引用  查看    

#26楼 2009-11-23 10:20 One Newbie      

不好意思,重新看了一下,感觉你推荐的几种字体还是非常好的,有空下下来看看小字体的效果...   回复  引用  查看    

#27楼[楼主] 2009-11-23 10:21 Windie Chai      

@missdeer
试着调节一下字号,每种字体的最佳显示字号是不一样的,另外,ClearType的设置也很重要。
  回复  引用  查看    

#28楼[楼主] 2009-11-23 10:22 Windie Chai      

@One Newbie
你该不会只看到开头那个反例吧,兄弟?哈哈。
  回复  引用  查看    

#29楼 2009-11-23 10:32 One Newbie      

@Windie Chai
主要是您的掩饰字体14号,我看起来不太习惯,
而且9号字体的Tahoma在vs代码编辑器里很好看
  回复  引用  查看    

#30楼 2009-11-23 10:33 _龙猫      

Consolas字体貌似是没有中文的啊,你们看了顺眼吗?

我是看了直各应,大力推荐 Microsoft Jhenghei+12号+bold
  回复  引用  查看    

#31楼 2009-11-23 10:39 _龙猫      

用等宽字体的话,我们公司条件艰苦,19寸的“等宽”显示器实在只能看到一部代码,太辛苦了   回复  引用  查看    

#32楼[楼主] 2009-11-23 10:43 Windie Chai      

@One Newbie
我同意,使用大字号是为了演示方便,呵呵。
  回复  引用  查看    

#33楼[楼主] 2009-11-23 10:44 Windie Chai      

@_龙猫
又是个见仁见智的问题,其实有个解决方案,楼上也有朋友提到过了,使用雅黑和Consolas的整合版,这样就两全其美了,呵呵。
我在公司比你还惨,14寸的本子,分辨率只能到1024*768……
  回复  引用  查看    

#35楼 2009-11-23 10:46 soosa[未注册用户]

我用的YaHei Consolas Hybrid   回复  引用    

#36楼[楼主] 2009-11-23 10:47 Windie Chai      

@soosa
看来使用整合版字体的朋友很多啊。
  回复  引用  查看    

#37楼 2009-11-23 11:17 麒麟.NET      

还是Consolas最舒服,只是其中文字体不太好看,所以我和楼上的兄弟一样,用YaHei Consolas Hybrid   回复  引用  查看    

#38楼 2009-11-23 11:26 阿明222[未注册用户]

consolas 用习惯了,以前用的是 fixedsys,这是 VS6 默认字体,用着用着居然习惯了,再换别的字体觉得不舒服,好不容易才改了 consolas。   回复  引用    

#39楼[楼主] 2009-11-23 11:32 Windie Chai      

@麒麟.NET
本来不准备在文章中分享修改版的字体,没想到喜欢YaHei Consolas Hybrid的朋友这么多,等我下载完了,就添加进来分享一下。
  回复  引用  查看    

#40楼 2009-11-23 11:34 亦续缘      

@_龙猫
你推荐的字体也还不错。字体很清晰。
  回复  引用  查看    

#41楼 2009-11-23 11:50 Ariex      

印象在院子里看到有人过一款字体,叫NSIMSUN_code

在这里:http://www.cnblogs.com/flashelf/archive/2008/05/02/1179528.html
  回复  引用  查看    

#42楼[楼主] 2009-11-23 11:53 Windie Chai      

@Ariex
这个看起来好像是点阵字体,还有好多适于显示代码的点阵字体,不过我写这篇文章时,考虑到大字体使用ClearType会更加舒服,就没有介绍点阵字体。
当然,点阵字体也是由优势的,小巧紧凑并且清晰。
  回复  引用  查看    

#43楼 2009-11-23 11:55 斯克迪亚      

求第一个字体~~感觉比较潇洒,哈哈   回复  引用  查看    

#44楼[楼主] 2009-11-23 11:59 Windie Chai      

@斯克迪亚
哈哈,我也是这么认为的。叫做Daniel,下载见这里:http://www.dafont.com/daniel.font
  回复  引用  查看    

#45楼 2009-11-23 12:49 生鱼片      

很酷啊   回复  引用  查看    

#46楼 2009-11-23 13:06 巫云      

Lucida Console其实就挺好啊。   回复  引用  查看    

#47楼 2009-11-23 13:23 Ariex      

@Windie Chai
不是点阵字体,而且字号比较大的时候看起来也很清楚,不过要是太大了看起来就有点瘦了……
  回复  引用  查看    

#48楼 2009-11-23 13:31 alonesword[未注册用户]

Consolas 一直使用   回复  引用    

#49楼 2009-11-23 14:16 czjone      

你真的是弦哥? 你QQ是多少~~我的是QQ371741579   回复  引用  查看    

#50楼[楼主] 2009-11-23 14:19 Windie Chai      

@czjone
我不知道弦哥是谁……
  回复  引用  查看    

#51楼 2009-11-23 14:25 czjone      

那就加你嘛   回复  引用  查看    

#52楼 2009-11-23 14:29 Motto      

以前一直用默认的,感觉太难看,现在就该成了Consolas   回复  引用  查看    

#54楼[楼主] 2009-11-23 15:46 Windie Chai      

@麒麟.NET
我直接用等宽雅黑把宋体替换了……
  回复  引用  查看    

#55楼 2009-11-23 15:51 小强.假的[未注册用户]

卖一下瓜:
微软雅黑字体与 Mono Bitstreams 字体的混合字体:
http://zhq.ahau.edu.cn/blog/article.asp?id=378
  回复  引用    

#56楼 2009-11-23 17:19 DiryBoy      

visual studio 2008更改中文字体的方法 这篇文章的做法可以混合字体吗?可以就不用down字体了。

[EDIT]
Oh yeah!成功了!
http://tu.6.cn/pic/show-new/id/5457815/
  回复  引用  查看    

#57楼[楼主] 2009-11-23 17:54 Windie Chai      

@DiryBoy
我觉得这是最好的方法!
不用破坏版权编辑别人的字体,也不用冒着风险替换系统字体。
感谢提醒!
我已经更新到文章中了。
  回复  引用  查看    

#58楼 2009-11-23 18:28 Muse      

这贴得收藏一下,比较喜欢Consolas+雅黑(刚改过来)
以前直接用雅黑,但是不是等宽,虽然看起来不错,但对其就很麻烦(尤其是空格很小,看空格很难)
  回复  引用  查看    

#59楼 2009-11-23 20:51 zeus2      

Consolas+雅黑
主要Consolas默认中文是宋体 比较难看不协调。

  回复  引用  查看    

#60楼 2009-11-23 22:10 DiryBoy      

@Windie Chai
我也学到了东西,都旨在 happy coding,哈哈:)
  回复  引用  查看    

#61楼[楼主] 2009-11-24 08:28 Windie Chai      

@zeus2
你可以参照文末最后一段直接让Visual Studio用微软雅黑显示中文,英文嘛,自己随便设置。
  回复  引用  查看    

#62楼 2009-11-24 15:25 斯克迪亚      

引用Windie Chai:
@斯克迪亚
哈哈,我也是这么认为的。叫做Daniel,下载见这里:http://www.dafont.com/daniel.font

thx   回复  引用  查看    

#63楼 2009-11-24 19:56 sexla[未注册用户]

应该是更难看懂了饿!   回复  引用    

#64楼 2009-11-26 16:34 Mr.Choi      

正需要这个,顶一个!   回复  引用  查看    

#65楼 2009-11-30 10:09 李胜攀      

不错不错   回复  引用  查看    

#66楼 2009-11-30 10:39 Bob-wei      

引用Muse:
这贴得收藏一下,比较喜欢Consolas+雅黑(刚改过来)
以前直接用雅黑,但是不是等宽,虽然看起来不错,但对其就很麻烦(尤其是空格很小,看空格很难)


主要使用Consolas+宋体,在我的液晶显示器上看起来很舒服。   回复  引用  查看    

#67楼 2009-11-30 13:19 cnyao      

中文的话,方正幼圆很不错的,英文consolas
其实Verdana很不错,关键就是不是等宽,有同学不太理解为什么等宽这么重要,主要涉及到上下的字体对齐,你注意变换一下源码的显示,然后观察一下效果就应该清楚了,还是等宽的适合编程人员使用。
  回复  引用  查看    

#68楼[楼主] 2009-12-02 08:59 Windie Chai      

@cnyao
对,我一直觉得,良好的变成习惯包含了不要写过长的代码行,这样会降低可读性,而等宽字体会让我们更容易检查代码行的长度。
  回复  引用  查看    

导航

公告


 

版权声明

本Blog言论均以“现状”提供,没有任何担保,也没有授予任何权利,如需转载,请注明出处。

统计

搜索

 

常用链接

我参与的团队

我的标签

随笔分类

随笔档案

出版社

专家博客

积分与排名

最新评论

阅读排行榜

评论排行榜