以前如果你搜「最佳编程字体」,得到的推荐离不开这么几个: 熟悉 Mac 的用 Monaco 、特别怀旧的用 Courier 、喜欢 Windows 的用 Consolas ,最多再来一个 DejaVu 或者 Andale Mono 。但如今各种编程用的字体已经如雨后春笋般冒出来了,比如昨天就看到一款叫做 Hack 的新编程字体,除此之外现在还有很多其他新鲜的选择:
# 1. M+
先推荐 M+,他其实已经不新了,从整个家族第一款点阵字追溯起来有超过十年历史。不过长期的更新让 M+ 有了比较完整的字体家族,等宽版本有两个字宽,窄字宽包含 5 种字重,宽字宽包含 7 种字重,其中窄字宽的版本特别合适每行代码内容都特别长的情况,同时因为作者来自我们东面的邻国,所以对日文支持很好,编程环境用得到日文那就很适合 M+ 了。
_M+ 1M Regular, 12pt_
![M+](
http://pic.yupoo.com/yingjunjiu_v/EV7FaA9A/128fo5.png )
* M+ 官网:
http://mplus-fonts.osdn.jp/* Wikipedia 上的介绍页面:
https://en.wikipedia.org/wiki/M%2B_FONTS* M+ 的 Typekit 页面:
https://typekit.com/foundries/m-fonts# 2. Input
比起 M+, Input 同样相当有诚意,整个家族的可选范围更加恐怖,自带衬线体、无衬线体、等宽体三个版本,每个版本都包含了 7 个字重, 4 个字宽,总有一款适合你。简单做一下乘法计算你就会发现这是整整 84 个不同选择,除此之外 Input 的自定义程度也很高, a 、 g 、 i 、 0 等字母和数字都有多种选择以适应所有人的需要。因为实在是太丰富,所以为了照顾选择犹豫症的朋友 Input 直接提供了一个预览页面方便大家自定义后直接下载。
_Input Regular, 11pt_
![input](
http://pic.yupoo.com/yingjunjiu_v/EV1SFvfX/5DDWo.png )
* Input 官网:
http://input.fontbureau.com/# 3. Fira Code
这年头如果没个自家的正文字体,都不好意思叫大厂了, Adobe 有 Source , Intel 有 Clear Sans , Apple 有 San Francisco , Google 有 Roboto ,而 Mozilla 主推的字体系列是 Fira ,今天介绍的这个 Fira Code 是基于 Fira Mono 等宽字体的的一个扩展,主要特点是加入了编程连字特性( ligatures ),何为连字?传统西方文字排印的一个特性,比如「 f 」和「 i 」放在一起的时候两个字母容易粘连,那设计者就会专门设计一个连字字符来替代原来单独的「 f 」和「 i 」的连字:
![ligatures](
http://pic.yupoo.com/yingjunjiu_v/EV7YSURY/cBBJE.png )
OpenType 格式的字体可以支持连字,任意指定当某几个特定字符一起出现时替换为设计过的连字字符。很多编程字体包括 Fira Code 就是利用了这个特性来对编程中的常用符号进行优化,比如把输入的「!=」直接显示成「≠」或者把「>=」变成「≥ 」等等,以此来提高代码的可读性,听着还挺厉害的对吧,不过请先把脱掉的裤子穿回去,因为支持这个连字属性的编辑器并不多,不可用的编辑器包括但不限于 SublimeText 、 XCode 、 Emacs 、 Eclipse ……好了,我也不列下去了,我没有一一去测试过,反正能不能用要看天命了~
_Fira Code, 11pt_
![fira-code](
http://pic.yupoo.com/yingjunjiu_v/EV844Fdl/bPGqi.png )
* Fira Code 主页:
https://github.com/tonsky/FiraCode* 原版 Fira Mono 及 Fira Sans 主页:
http://mozilla.github.io/Fira/# 4. PragmataPro
跟楼上那个一样,这款编程专用字体也有很多连字,除此之外另一个碉堡了的特性是作者从 9 到 48px 为这个字体做了每个字号大小的点阵字,所以如果你很倾向于使用像素位图字体的话一定会喜欢。不过……那个谁谁谁,还是先别把裤子给穿起来,因为我还没说完……这个字体收费来着,完整版 59 欧,简易版 19 欧。
_没有买这个字体,大家就看看官方的图感受一下吧~_
![pragmatapro](
http://pic.yupoo.com/yingjunjiu_v/EV86lddK/xk0uP.png )
* PragmataPro 官网:
http://www.fsd.it/fonts/pragmatapro.htm#.VeQKsNOqqko# 5. Monoid
那有没有一款既在小尺寸下做过点阵字,又支持各种编程连字,同时还免费呢?在这个 open 为王的时代,显然也是有的,那就是 Monoid ,虽然小尺寸只优化了 12px 版本,但是看在人家完全免费并且开源,就尝试一下吧~整体感觉跟 M+ 的窄体比较像,非常紧凑,但可读性很棒,同时作者提供了一个 Retina 版本专供高分辨率显示器。
_Monoid Regular, 9pt_
![monoid](
http://pic.yupoo.com/yingjunjiu_v/EV1X0U6g/F3LUm.png )
* Monoid 官网:
http://larsenwork.com/monoid/# 6. Courier Prime Code
那份熟悉的味道,来自新世纪的翻新,一听 Courier 这个名字就知道是跟上面几个字体完全不同的画风,源自打字机的 Courier 是个典型的 Slab Serif 字体,在我们的电脑上服役了好多年之后有人出了翻新版 Courier Prime ,同时也给他配备了去掉粗壮衬线的 Courier Prime Sans 和 Courier Prime Code 。只保留骨架的 Courier Prime Code 和 Fira 略像,不过 X 高度更高、字宽更壮硕、字怀更宽阔,如果你特别钟意这种不在乎屏幕横向空间、充分外扩的霸气,那就选他了~
![courier-prime-code](
http://pic.yupoo.com/yingjunjiu_v/EV8ieMO3/8q8sI.png )
* Courier Prime 官网:
http://quoteunquoteapps.com/courierprime/# 7. 其他
文章标题没有取成「十大编程字体」之类的就是因为接下来我也不打算详细介绍骗字啦~大家自己看看吧~
前面提到过的新品 Hack :
http://sourcefoundry.org/hack/![hack](
http://pic.yupoo.com/yingjunjiu_v/EV8nVkTw/prgeg.png )
一款旧作 Envy Code R :
http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released![envy](
http://pic.yupoo.com/yingjunjiu_v/EV8l6D14/dqS3k.png )
大师 Mark Simonson 的 Anonymous Pro :
http://www.marksimonson.com/fonts/view/anonymous-pro![anonymous](
http://pic.yupoo.com/yingjunjiu_v/EV8mEgAQ/9Y8gC.png )
# 8. 最后
安利到现在也许你想问:那 JJ 童鞋你自己用哪一款编程字体来着?我只能很诚实地告诉你,其实我自己根本不喜欢等宽字体,哪怕增加一些纠错的难度和时间也要把编辑器里常用字体设成 Source Sans Pro ,哈哈哈哈,是不是想打我的心都有了,请先别下手……因为广受好评的 Source 系列字体显然有等宽的版本: Source Code Pro ,七个字重,常规和斜体,良心之作,童叟无欺~
![source-code](
http://pic.yupoo.com/yingjunjiu_v/EV1lAcFi/C3oHD.png )
* Source Code Pro :
https://github.com/adobe-fonts/source-code-pro
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/217878
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.