Programming Fonts
我对于编程字体关注的几个点:
-
等宽
必需。
以下字体均为等宽字体。
-
易混淆字符的区分
必需。
例如:
数字 1 和 小写字母 i、l、大写字母 I、L
数字 0 和 小写字母 a、o、大写字母 O
-
支持 ligatures
可选。
旧字体不支持,近年出的字体一般都已经支持了。
其他常见的关注点:
-
英文字符 1/2 宽度
中英文混排时一个中文宽度 == 两个英文宽度
-
支持 powerline
vim 的 statusline plugin
Anonymous Pro
-
描述
比较古老的一款字体
-
问题
- 字符的装饰过多
- 不支持 ligatures
-
结论
作为某些旧系统下的选择
Cascadia Code
-
描述
Microsoft 在 Consolas 之后的新编程字体
-
优点
- 持续更新中
- 支持 ligatures
-
问题
- 小写字母 a 很有特点,但不太喜欢
-
结论
常用选择之一
Consolas
-
描述
Microsoft 在 windows 操作系统中自带的编程字体。
-
问题:
- 不支持 ligatures
-
结论
操作系统自带,作为默认字体
Consolas with Yahei
-
描述
一款 Consolas 和微软雅黑的混合字体,比常见的 Consolas-Yahei-hybrid 字体适配得更好。
-
优点
- 中英混合字体,在一些环境受限且需要中英混排的场景中非常有用
- 2英文宽度 = 1中文宽度
-
问题
- 不支持 ligatures
-
结论
根据场景使用
Droid Sans Mono
-
问题
- 不支持 ligatures
-
结论
很少使用
Fantasque Sans Mono
-
优点
- 支持 ligatures
- 字体有手写的感觉,比较生动
-
结论
轮换选择
Fira Code
-
描述
基于 Mozilla 的 Fira Mono,很全面的编程字体。
-
优点
- 小写字母 r 非常锐利,令人印象深刻
- 支持 ligatures
-
结论
主力选择
Hack
-
问题
- 不支持 ligatures
- 左右中括号和大括号的高度对齐似乎不太一致
-
结论
偶尔选择
Hasklig
-
描述
Adobe 的 Source Code Pro 的变体
-
优点
- 支持 ligatures
-
结论
常用选择之一
Hermit
-
优点
- 小写字母非常另类
-
问题
- 不支持 ligatures
-
结论
偶尔选择
IBM Plex Mono
-
描述
IBM 出品。
-
问题
- 不支持 ligatures
- 小写字母 f 下边的横线感觉不好看
-
结论
很少使用
Inconsolata
-
描述
跟 Consolas 风格接近,但是字符更瘦,字体更细
-
结论
偶尔选择
JetBrains Mono
-
描述
JetBrains 公司推出的编程字体。
-
优点
- 支持 ligatures
-
问题
1,i,l 最下边的线太宽
-
结论
轮换选择
Monoid
-
优点
- 支持 ligatures
-
问题
- 字符实际上不是等宽的,只是占位等宽,比如小写字母 i,l 都很窄,导致字符两边的空白比较明显
-
结论
很少使用
Roboto Mono
-
优点
- 括号宽度较窄
-
问题
- 不支持 ligatures
-
结论
轮换选择
Source Code Pro
-
描述
Adobe 出品
-
问题
- 不支持 ligatures
-
结论
轮换选择
Ubuntu Mono
-
描述
Canonical 出品
-
优点
- 2英文宽度 = 1中文宽度
-
问题
- 字符偏小,间距过于紧密
-
结论
根据场景使用
Victor Mono
-
优点
- 支持 ligatures
-
结论
轮换选择
Mononoki
-
问题
- 不支持 ligatures
- @ 字符实心
-
结论
偶尔选择
M Plus 1 Code
-
优点
- 2英文宽度 = 1中文宽度
-
问题
- 不支持 ligatures
- 字母 c 不太喜欢
- 整体字间距较小
-
结论
根据场景使用