介绍
FiraCode是一款优秀的编程专用连体等宽字体,这是笔者使用次数最多的字体,因为我喜欢它的连体性质,让代码看起来更优雅更符合人类对于字体的认知,在Github上这款字体已经收获40+K Stars,足以说明其受欢迎程度,当然优秀是其受欢迎的原因!
![eb4a1cc5401949c91127abaf9964fba7.png](https://i-blog.csdnimg.cn/blog_migrate/eaf27c65a05e42bbc9e3e6bceee97fb8.jpeg)
Github
https://github.com/tonsky/FiraCode
![683ef69cf679a1a783705554e54f6b6a.png](https://i-blog.csdnimg.cn/blog_migrate/30a2f2c632949acf1905a44fe852abe5.jpeg)
一般字体的问题
我们在考虑载体会在意以下几个点:
- 相似的特征是区分的,比如 0|O,1|I
- 字体样式(线宽,字符宽度/高度)是否易于阅读
- 安装方式
- 分辨率支持
- 是否开源、免费
程序员使用很多符号,通常用几个字符编码。对于人的大脑,序列等->,<=或者:=是单独的逻辑标记,即使它们需要两个或三个字符在屏幕上。眼睛花费了非零的能量来扫描,解析并将多个字符合并为一个逻辑字符。理想情况下,所有编程语言都应使用面向操作员的完整Unicode符号进行设计,但事实并非如此。
![968c9f62847975a4b73e518b576ff749.png](https://i-blog.csdnimg.cn/blog_migrate/0988e5132a2b2269a77616aa821416ad.jpeg)
Fira Code是Fira Mono字体的扩展,其中包含一组用于常见编程多字符组合的连字。这只是字体渲染功能:基础代码保持ASCII兼容。这有助于更快地阅读和理解代码。对于..或//这样的频繁序列,连字允许我们校正间距。
![f13608bebb88ca70b54b6bd4571a4086.png](https://i-blog.csdnimg.cn/blog_migrate/a03fdff5a23d9727011b2ec9f9808311.jpeg)
代码效果预览
下面展示一些Fira Code在不同变成语言的效果体验(来源于Github):
- Ruby
![24c21759977fb5a9de312e247c994929.png](https://i-blog.csdnimg.cn/blog_migrate/911568f75eeaaebb4a962b175f2eb2a4.jpeg)
- Go语言
![f5698e16d3dfffe8ccbb795734fd374f.png](https://i-blog.csdnimg.cn/blog_migrate/0da583393f49db8697fc2ea06d30c3b1.jpeg)
- JavaScript
![8d66c546eedc67999a24d800cc6496ea.png](https://i-blog.csdnimg.cn/blog_migrate/2f86a73cd46f796a32d65da4090b4521.jpeg)
- PHP
![b2e5d888aadbb6bd63d5b70066aa6f0a.png](https://i-blog.csdnimg.cn/blog_migrate/2e508dc4985ff3fe6cec4c7a0c727aa4.jpeg)
- liveScript
![5a63de67035fb87ff9e0dcd163924cbe.png](https://i-blog.csdnimg.cn/blog_migrate/2b7c7238f183727e0d314936910639b4.jpeg)
- clojure
![e41b3a075f8703d7648b9181a99ba16f.png](https://i-blog.csdnimg.cn/blog_migrate/8e128b9c7817bd51dcb669b44b58981f.jpeg)
终端和编辑器支持
下面的图片展示了其支持和不支持的终端:
![ddfabdaa59e2699acad84fa2b0f3ca4f.png](https://i-blog.csdnimg.cn/blog_migrate/ab7a4c95237d2539f4a442b8bed0c84e.jpeg)
以下是支持和不支持的编辑器(左边是支持的编辑器,右边相反):
![89a208eefe320f9e168bb1d546af1cac.png](https://i-blog.csdnimg.cn/blog_migrate/6e44ff569189fa12028ea0dfd8db6510.jpeg)
![b5abb747afc7b15fd402a9bedc65456a.png](https://i-blog.csdnimg.cn/blog_migrate/d8b5c1409e93e1f593ed25332ad5dc07.jpeg)
![60e096121417049660aaf6eda5bcb2a9.png](https://i-blog.csdnimg.cn/blog_migrate/538d2d1ed10f90b6dc065129e385a873.jpeg)
Web浏览器支持
/* CSS */@import url(FiraCode@1.207/distr/fira_code.css);/* Specify in CSS */font-family: 'Fira Code', monospace;
以下是浏览器支持情况:
- IE 10+, Edge: enable with font-feature-settings: "calt" 1;
- Firefox
- Safari
- Chromium-based browsers (Chrome, Opera)
- ACE
- CodeMirror (enable with font-variant-ligatures: contextual;)
样式集设置
通过样式集,可以按功能访问字体的其他可选部分。在Fira Code中,它们允许你启用/禁用替代字符变体。Fira Code v2支持以下样式集(只有在编辑器支持的情况下,才能启用样式集):
![210cefa954946665e66894e0c87ae16c.png](https://i-blog.csdnimg.cn/blog_migrate/b8635338447fe3fcdab89d69be86ecc2.jpeg)
如何设置样式集,可以参考Github上对于各个编辑器的介绍!
编辑器预览
以下是笔者使用的IDE或者编辑器的使用预览效果,字体已经放大:
- VSCode
![4ee74a26b6d6aaadac9585361410785a.png](https://i-blog.csdnimg.cn/blog_migrate/17183b8b07e13ece661ec9e72dee2b82.jpeg)
- IDE家族
![8e2576875de9b822cae88b8ee6f103ee.png](https://i-blog.csdnimg.cn/blog_migrate/d13550baada27d611357450414f11729.jpeg)
总结
笔者使用过几款字体,各有各的优点,FiraCode是其中使用最多的字体,其他字体如Input、Source Code Pro、Anonymous Pro、Ubuntu Mono、Menlo、Consolas、Hack也是比较优秀的,有关这些字体的简单了解可参考下文:
https://www.toutiao.com/i6686413409770013187/