编程字体怎么选?连字、免费与可读性对比及 Dev Fonts 预览方法
选编程字体的核心是先确定用途:只在编辑器里写代码,可以优先考虑带连字的字体;终端和编辑器混用,则要确认字体在终端下等宽对齐正常。Dev Fonts(devfonts.gafi.dev)是一个可交互的字体列表,支持按名称搜索、切换主题预览、勾选字体加入对比,并标注了每个字体是否免费、是否支持连字(Ligatures),适合在决定前快速筛掉不合适的候选。
用哪几个维度做筛选
编程字体之间的差异主要落在四件事上,按优先级排:
- 等宽对齐:所有字符占同样宽度,代码缩进和表格才不会错位。这是编程字体的底线,列表中的字体基本都满足。
- 连字(Ligatures):把
=>、!=、===这类多字符组合渲染成单个符号。支持连字的字体在 Dev Fonts 中带 🔗 标记。 - 免费还是付费:Dev Fonts 用 🎁 Free 和 💰 标注价格,例如 Dank Mono 显示为 £40,其余多数为免费。
- 易混淆字符的区分度:
0与O、1与l与I是否一眼可分,直接影响读代码时的出错率。
连字:要不要开
连字是编程字体里分歧最大的选项。
支持连字的字体(Dev Fonts 中带 🔗 标记)包括:Cascadia Code、Fira Code、JetBrains Mono、Monoid、Lilex、Victor Mono、Consolas Ligaturized、Iosevka、Iosevka Slab、Hasklig、Fantasque Sans Mono、Julia Mono。
不支持连字的字体包括:Input Mono、Hack、Noto Mono、Conta、Classic Console、Mononoki、Comic Mono、Roboto Mono、Inconsolata、Source Code Pro、Anonymous Pro、Space Mono、Oxygen Mono、B612 Mono、PT Mono、Nanum Gothic Coding、Ubuntu Mono、IBM Plex Mono、Share Tech Mono、Cousine、Overpass Mono、Courier Prime、Nova Mono。
取舍建议:
- 如果你习惯把
!==读成单个符号、觉得连字让代码更紧凑,选支持连字的字体。 - 如果你经常需要逐字符核对代码(比如排查字符串、正则、位运算),连字会把多个字符显示成一个符号,反而增加误读风险,选不支持的更稳妥。
- 连字通常是可开关的,编辑器里可以关掉,所以这不是不可逆的决定。
免费与付费
Dev Fonts 的列表里,绝大多数字体标为 🎁 Free,包括 Cascadia Code、Fira Code、JetBrains Mono、Iosevka、Victor Mono、Hack、Roboto Mono、Source Code Pro、IBM Plex Mono 等。
明确标注价格的只有 Dank Mono,显示为 💰 £40。
也就是说,如果预算有限,免费选项已经覆盖了主流的高质量编程字体,付费字体更多是风格偏好问题。列表中没有标注价格的字体,本文不推断其授权条款,实际使用前建议到字体官方页面确认许可证。
可读性看什么
字体预览时重点盯这几组字符:
| 关注点 | 具体字符 | 好的表现 |
|---|---|---|
| 零与字母 O | 0 O |
零带点或带斜杠,与 O 明显不同 |
| 数字一与小写 L、大写 I | 1 l I |
三者形态可区分 |
| 括号与花括号 | () {} [] |
在密集代码中不糊成一团 |
| 标点密集行 | => != :: |
连字开启后仍能辨认原字符 |
长时间阅读疲劳度无法只靠预览判断,但可以在 Dev Fonts 里切换主题(如 material-palenight),用真实配色看字符对比度是否够。
用 Dev Fonts 预览和对比
Dev Fonts 提供三个直接可用的功能:
- 搜索:顶部有 search by name 输入框,输入字体名可快速定位。
- 主题切换:页面顶部可切换主题(示例中为 material-palenight),预览区会同步换色,方便看字体在不同配色下的表现。
- 对比(Compare):每个字体卡片有 add fonts to compare 入口,把候选字体加入对比区并排显示,直接比较字形差异。
另外每张卡片有 get font 链接(跳转获取字体)和 Copy code to all(复制代码示例到所有预览),后者可以让你用同一段代码横向比较不同字体的渲染效果。
操作顺序建议:先用搜索缩小范围 → 切换到你常用的编辑器主题 → 把 2–3 个候选加入 Compare → 用同一段代码并排看易混淆字符。
选定后怎么落地
- 通过字体卡片的 get font 链接获取字体文件。
- 安装到系统(双击字体文件或放入系统字体目录)。
- 在编辑器中设置字体名,并保留等宽回退字体,例如:
font-family: "JetBrains Mono", "Fira Code", Consolas, monospace; - 如果字体支持连字但你不想用,在编辑器设置里关闭连字选项(不同编辑器位置不同,通常在字体或编辑器外观设置中)。
- 终端里单独确认一次对齐是否正常,部分终端对连字支持有限。
常见卡点
- 终端里连字不生效或错位:不是所有终端都支持连字渲染,遇到问题先关掉连字再试。
- 字体装了但编辑器没变:检查字体名拼写是否与系统安装名一致,以及回退链里是否被前面的字体拦截。
- 预览好看、实际写代码累:预览通常只展示少量字符,建议用 Copy code to all 贴一段你日常写的真实代码再判断。
- 付费字体授权范围:Dank Mono 标注 £40,但具体授权条款(可安装设备数、商用范围)需到官方页面确认,本文不代为判断。