Sublime Text需用font_face数组实现中英文混合字体,如["Microsoft YaHei", "Fira Code"],顺序不可颠倒;单字体无法兼顾中英文渲染,且须确保字体已系统注册、重启软件生效。

font_face填数组才能启用中英文混合字体
Sublime Text 不支持“一个字体自动切换中英文”,必须显式指定字体回退顺序:把中文字体放前面,英文字体放后面。填单个字符串(如 "Microsoft YaHei")只会用那一个字体,中文能显示、英文标点和符号常发虚或错位。
- 正确写法是用 JSON 数组:
"font_face": ["Microsoft YaHei", "Fira Code"]—— 渲染时先查微软雅黑里的中文/数字/汉字标点,缺失的 ASCII 字符(比如{、->、连字)自动 fallback 到 Fira Code - 顺序不能反:如果写成
["Fira Code", "Microsoft YaHei"],英文正常,但中文根本不会被调用(Fira Code 里没有汉字,Sublime 不会继续往下找) - macOS 上推荐
["PingFang SC", "SF Mono"];Linux 可用["Noto Sans CJK SC", "Source Code Pro"] - 数组最多建议 2–3 个字体,太多会导致渲染变慢,尤其在高 DPI 屏幕上滚动时有卡顿感
混合字体下 font_options 要谨慎开
加 "font_options": ["ligatures"] 确实能让 !=、=> 这类连字更美观,但中文字体基本不支持连字特性——一旦启用了,整个行的中英文混排会强制走复杂渲染路径,结果往往是中文字符边缘模糊、等宽对齐错乱,甚至光标位置偏移。
- 只在纯英文项目(如 JS/TS/Rust)且确认主力字体支持 ligatures 时才开;中英文混杂的 Python/Go/Shell 脚本建议保持默认关闭
-
"subpixel_antialias"在 Windows 高 DPI 下可缓解发虚,但它和 ligatures 冲突,二者不要共存 - 改完
font_options后务必彻底退出 Sublime(任务栏右键退出 / Activity Monitor 杀进程),否则新选项不生效
字号不匹配会让中英文视觉割裂
中文字体和英文字体的 x-height、字宽、行高等物理度量天然不同。设 font_size: 14 时,"Microsoft YaHei" 看着比 "Fira Code" 大一圈,导致代码缩进错位、括号不对齐、注释和代码行高不一致。
- 推荐统一用
font_size: 13或14,再配合"line_padding_top": 1和"line_padding_bottom": 1微调行间距,比硬调字号更稳 - 霞鹜文楷这类手写风中文字体,实际显示比标称字号小 1–2px,配
"LXGW WenKai"时建议设font_size: 15起步 - 别信“混合字体推荐字号 16”这种笼统说法——它只对
"Yahei Monaco Hybrid"这类人工合并字体有效,原生混合不适用
字体没注册成功,数组写得再对也白搭
最常被忽略的一环:Sublime 只读系统已注册的字体名,不是你双击安装了 .ttf 就算数。Windows “仅当前用户安装”、macOS 装到“用户”而非“电脑”、Linux 没跑 fc-cache -fv,都会导致数组里第一个字体直接 fallback,整行退回到 Courier New。
- 验证方式:Windows 打开「设置 → 字体」,搜索
Microsoft YaHei(注意是英文全名,不是“微软雅黑”);macOS 打开「字体册」,筛选“电脑”来源,确认PingFang SC存在 - Linux 用户执行
fc-list | grep -i "sans\|cjk",确保输出里有目标字体的英文名(如Noto Sans CJK SC) - 装完字体后不重启 Sublime?不行。必须彻底退出再启动,否则缓存未刷新,
font_face数组里写的全是“空气”
混合字体排版真正的难点不在配置格式,而在于字体度量不可见——你看不到“这个汉字占几个像素”“那个连字触发了几次 fallback”。调一次字号、换一个顺序,都得手动开文件试三遍以上。别省这一步。











