使用更好的编程字体自定义你的编辑器
如果你在编码数小时后眯着眼睛看屏幕,或者在 JavaScript 中难以区分 0 和 O,那么你使用的字体不对。合适的编程字体能够改变你的开发体验——减少眼睛疲劳,提高代码可读性,甚至让那些漫长的调试过程变得更容易忍受。
本指南将带你了解如何为编辑器和终端选择并配置现代编程字体,并提供 VS Code 和 JetBrains IDE 的实用设置说明。
核心要点
- 现代编程字体提供清晰的字符区分、适当的字体微调以及可选的连字功能
- Fira Code 在连字支持方面处于领先地位,而 JetBrains Mono 则在可读性和美观性之间取得平衡
- VS Code 和 JetBrains IDE 支持独立配置编辑器和终端字体
- Nerd Fonts 为 Starship 和 Oh My Posh 等现代终端工具添加图标
为什么默认字体不够好
大多数编辑器默认使用系统字体,如 Courier New 或 Consolas。虽然这些字体可以使用,但它们并非为现代开发工作流程而设计。最好的编程字体应具备:
- 清晰的字符区分:不再混淆
1、l和I - 适当的字体微调:在常见编码字号(12-14px)下清晰渲染
- Unicode 覆盖:支持现代 JavaScript、表情符号和国际字符
- 可选的连字:将
=>和!==转换为单个可读字形
2025 年顶级现代编程字体
Fira Code:连字先驱
Fira Code 仍然是连字支持的黄金标准。它的 150 多个编程连字与 JavaScript 和 TypeScript 完美配合:
const isValid = input !== null && input.length >= 3;
const transform = (data) => data.map(item => item * 2);
提供标准版和 Nerd Font 变体(FiraCode NF),非常适合希望在终端中使用图标的开发者。
JetBrains Mono:平衡之选
JetBrains Mono 在可读性和美观性之间取得了出色的平衡。其增加的 x 高度和优化的字符形状可减少长时间编码过程中的眼睛疲劳。该字体包括连字和非连字变体。
Cascadia Code:微软的现代诠释
Cascadia Code 是 Windows Terminal 的默认字体。它提供多个变体:
- Cascadia Code:带连字的标准版
- Cascadia Mono:无连字版
- Cascadia Code NF:支持现代图标的 Nerd Font 变体
Monaspace:GitHub 的创新
Monaspace 代表了可变等宽字体的最新演进。它的五个变体(Neon、Argon、Xenon、Radon、Krypton)各有不同用途,其突出特性是”纹理修复”——通过细微的宽度调整来提高可读性,同时不破坏等宽对齐。
Monaspace 还提供”Frozen Fonts”,这是为不公开 OpenType 功能控制的编辑器设计的预配置变体,确保连字和样式集在各种工具中一致工作。
Monaspace 与 Fira Code 对比:虽然 Fira Code 在连字方面表现出色,但 Monaspace 的纹理修复功能创造了更自然的阅读流畅度。如果你需要长时间编码,选择 Monaspace;如果你优先考虑广泛的连字支持,则坚持使用 Fira Code。
Discover how at OpenReplay.com.
在 IDE 中配置字体
VS Code 设置
VS Code 将编辑器和终端字体分开,允许独立自定义:
{
// 编辑器字体设置
"editor.fontFamily": "'JetBrains Mono', 'Fira Code', monospace",
"editor.fontSize": 14,
"editor.fontLigatures": true,
// 终端字体设置(通常需要 Nerd Font 变体)
"terminal.integrated.fontFamily": "'JetBrainsMono NF'",
"terminal.integrated.fontSize": 13
}
要在 VS Code 中启用连字,请确保将 editor.fontLigatures 设置为 true。你也可以使用样式集:
"editor.fontLigatures": "'ss01', 'ss02', 'cv01'"
JetBrains IDE 配置
在 JetBrains IDE(IntelliJ、WebStorm、PyCharm)中启用连字:
- 打开 Settings → Editor → Font
- 选择你的字体(例如 “JetBrains Mono”)
- 勾选 Enable font ligatures
- 调整字号(1080p 显示器通常为 13-14)
终端配置:Settings → Editor → Color Scheme → Console Font
理解 Nerd Fonts
Nerd Fonts 在常规编程字体上添加额外的字形——文件图标、Git 符号和操作系统徽标。“NF”后缀表示 Nerd Font 变体(例如 FiraCode NF、JetBrainsMono NF)。
为什么使用它们?现代终端工具如 Starship 或 Oh My Posh 依赖这些图标来显示丰富的提示符:
~/projects/app main node v18.17.0
从官方仓库或通过包管理器安装 Nerd Fonts:
# macOS
brew tap homebrew/cask-fonts
brew install --cask font-fira-code-nerd-font
# Windows (Scoop)
scoop bucket add nerd-fonts
scoop install FiraCode-NF
探索可变字体
像 Monaspace 和 Recursive 这样的可变字体提供可调整的粗细和宽度轴。这让你可以微调字体而无需切换字体系列:
// VS Code
"editor.fontVariations": {
"wght": 400, // 粗细: 300-700
"wdth": 100 // 宽度: 75-125
}
安装前先测试
在安装之前,可以在 Programming Fonts 或 Coding Font 预览字体。用你的实际代码进行测试——在示例中看起来不错的字体可能不适合你的语法高亮主题。
结论
合适的编程字体是个人化的——适合一个开发者的字体可能不适合另一个开发者。从 JetBrains Mono 或 Fira Code 开始是一个安全、现代的选择。如果你想要前沿功能,可以尝试 Monaspace。记得为终端使用安装 Nerd Font 变体,如果你选择的字体支持连字,不要忘记启用它们。
最重要的是,在你的实际工作流程中对每种字体进行真实测试。你的眼睛会感谢你。
常见问题
Nerd Fonts 是在常规编程字体上添加了数千个额外字形的版本,包括文件图标、Git 符号和操作系统徽标。它们对于在提示符和文件列表中显示图标的现代终端工具至关重要。
不会,连字纯粹是编辑器中的视觉表现。它们不会改变代码文件中的实际字符。你的编译器看到的是原始字符,如 => 而不是连字符号。
VS Code 对编辑器和集成终端使用单独的字体设置。配置 editor.fontFamily 用于代码编辑器,配置 terminal.integrated.fontFamily 用于终端,以确保一致性或有意的差异。
可变字体支持取决于你的 IDE 版本和操作系统。2020 年以后的大多数现代 IDE 都支持它们,但较旧版本可能只能识别可变字体的默认粗细和宽度。
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.