Fira Code连字提升逻辑可读性而非视觉舒适度,其较细字重、偏小x-height在低分辨率屏或未配抗锯齿时易致边缘发虚、间距不均,加剧视觉疲劳;JetBrains Mono因更高x-height、默认启用ss01/cv05及标点严格对齐等设计,更适护眼。

直接换字体不护眼,关键在「字体 + 渲染参数 + 主题背景」三者匹配;单独调高字号或选个“深色主题”反而加重疲劳。
为什么Fira Code开了liga还是不护眼
Fira Code 的连字(liga)提升的是逻辑可读性,不是视觉舒适度。它默认使用较细的字重、偏小的 x-height,在低分辨率屏或未配抗锯齿时,字符边缘发虚、间距不均,眼睛要持续微调焦距——这才是真正累的来源。
- Windows 上必须同时启用
subpixel_antialias(在用户设置里加"font_options": ["liga", "subpixel_antialias"]),否则liga会触发 GDI 回退,文字糊成一片 - macOS 不要加
gray_antialias,它会关掉子像素渲染,Fira Code 的斜线和点号(如&、.)立刻变毛边 - 字号别硬套推荐值:1080p 屏建议从
"font_size": 13起试;2K/4K 屏用 11–12 更稳,靠行高(line_height)补可读性,不是靠放大字
JetBrains Mono比Fira Code更适合护眼的三个实际原因
JetBrains Mono 是少数把「长时间阅读耐受性」写进设计文档的编程字体,不是靠连字噱头,而是底层参数更克制:
- 默认启用
ss01(单层g、a)和cv05(无衬线数字),避免小写字母与数字混淆引发的反复确认 - x-height 比 Fira Code 高 8%,12pt 下等效于其他字体 13pt 的垂直信息量,减少眼球上下扫视频次
- 所有标点(
{、[、;)宽度严格对齐 ASCII 字符,配合Dracula或Ayu Mirage这类中明度背景时,代码区块呼吸感更强,不压迫
中英混排时字体 fallback 失效的真实原因
Sublime 不支持 CSS 式多字体回退语法(如 "font_face": ["Fira Code", "Microsoft YaHei"]),你写的数组会被整个忽略,静默 fallback 到系统默认 Consolas/Monaco。
- 真能用的写法只有单字符串:
"font_face": "YaHei Consolas Hybrid"(注意空格和大小写,必须已安装该字体) - 如果想用 JetBrains Mono 显示英文 + 思源黑体显示中文,得用第三方插件
FontSettingsOverride,手动 patch 字体链,普通用户不建议碰 - 验证是否生效:打开一个含中文注释的文件 →
Ctrl+Shift+P→ 输入Developer: Show Scope Name,光标停在中文上,看输出里是否含source.chinese;若仍是text.plain,说明字体层根本没接收到中文
侧边栏字体不随编辑区变化?这不是 bug,是机制
Sublime 的侧边栏(sidebar)、标签页(tabs)、状态栏(status bar)字体由 UI 主题(.sublime-theme)控制,和编辑区的 font_face 完全无关。你改了用户设置里的 font_face,只影响代码区域。
- 想统一字体,必须编辑对应 theme 文件:比如用
Material Theme,路径是Packages/Material Theme/material-theme.sublime-theme - 搜索
sidebar_label或tab_label,找到"font.face"字段,填入和编辑区一致的字体名(如"JetBrains Mono") - 改完保存,
Ctrl+Shift+P→UI: Reload Theme生效,不用重启
最常被跳过的环节是:没确认当前 theme 文件是否被 Package Control 锁定覆盖。Material Theme 等活跃主题每次升级都会重写 .sublime-theme,手动改的字体设置一重启就丢——得把修改迁移到 Preferences → Package Settings → Material Theme → Settings 里,用 theme_font_face 覆盖才持久。



















