Sublime Text的font_face必须填系统注册的英文全名才生效,大小写、空格、连字符须完全匹配,填错则静默fallback至默认字体;需为所有用户安装字体、验证系统已识别、修改User设置并彻底重启。

font_face填的不是系统注册名,字体根本不会加载
Sublime Text 不读字体文件路径,也不认中文名、文件名或“微软雅黑”这种显示名。它只查操作系统注册表/字体册里登记的英文全名,大小写、空格、连字符必须完全一致。
常见错误示例:"font_face": "msyh.ttf"、"font_face": "微软雅黑"、"font_face": "Source Han Sans CN "(末尾多空格)——全部静默 fallback 到 Courier New 或默认等宽字体。
- Windows:打开「设置 → 字体」,找“Microsoft YaHei”,复制显示的全名,不要加引号或后缀
- macOS:用「字体册」预览字体,点「信息」看「全名」字段,如
PingFang SC或Source Han Sans CN - Linux:终端运行
fc-list | grep -i "source han",取输出中完整匹配的那一行(含空格和连字符)
字体已装但Sublime看不到,多半是安装方式不对
双击 .ttf 文件点「安装」≠ 系统全局注册成功。Sublime 只读「所有用户」或「电脑级」安装的字体,当前用户安装常被忽略。
- Windows:右键字体文件 → 选「为所有用户安装」;装完务必在字体设置里确认
Microsoft YaHei出现在列表中 - macOS:双击字体 → 「安装字体」→ 左下角目标选「电脑」而非「当前用户」
- Linux:复制字体到
/usr/local/share/fonts/(非~/.fonts/),再执行fc-cache -fv
装完别急着开 Sublime,先验证系统是否真认得它——否则改配置纯属白忙。
配置改了但没生效,大概率是没保存或没退出干净
Settings 必须改右侧 Preferences.sublime-settings — User,左侧默认配置是只读的,改了也无效。JSON 格式还要合法:大括号包裹、每行末尾有逗号(除最后一行)、不能有多余逗号或注释。
正确示例:
{ "font_face": "Microsoft YaHei", "font_size": 12 }
改完必须:① Ctrl+S 保存;② 彻底退出 Sublime(Windows 查任务栏托盘图标,macOS 用 Activity Monitor 杀掉所有 subl 进程);③ 重开。仅关闭窗口不退出进程,新设置不会加载。
中文字体显示方块或菜单乱码,不是字体问题而是渲染引擎冲突
即使 font_face 正确、字体已装好,Windows 上 DirectWrite 渲染仍可能把简体字 fallback 成繁体字形(如“文件”变“檔案”),或在高 DPI 下发虚、出方块。这不是字体缺字,是渲染层选错了字形表。
- 强制切回 GDI 渲染:在用户设置里加
"font_options": ["gdi"]和"theme_font_options": ["gdi"] - 若需 emoji 或特殊 Unicode 字符(如 ?、?),单字体不够,得配回退链:
"font_face": "Consolas, \"Segoe UI Emoji\", \"Noto Color Emoji\"",且主字体不能是纯中文字体(如Microsoft YaHei放首位会卡住 fallback)
最易被忽略的是:font_options 的值是数组,不是字符串;gdi 模式在新版 Windows 上仍有效,但必须配合完全退出才能生效。











