确认Hack字体是否系统级安装:Windows在“设置→字体”中搜索并核对“完整名称”,macOS在“字体册”查“全名”,Linux运行fc-list | grep -i hack;未查到则说明未注册成功,需重装并刷新缓存(Linux用fc-cache -fv,macOS确认启用)。

确认 Hack 字体是否已系统级安装
Sublime Text 不会帮你装字体,它只读取操作系统注册的字体名。直接双击 Hack-Regular.ttf 点“安装”,不等于 Sublime 就能识别——你得先确认系统真正注册了它。
常见静默失败现象:设置里写了 "font_face": "Hack",但编辑器字体没变,或突然回退到 Consolas/Courier New。
- Windows:打开「设置 → 蓝牙和其他设备 → 字体」,搜索
Hack,点开详情看「完整名称」字段(不是文件名,也不是显示名) - macOS:双击字体文件 → 「显示简介」→ 查「全名」(必须是带引号的
"Hack",不是Hack Regular或Hack-Italic) - Linux:终端运行
fc-list : family | grep -i hack,输出中带英文引号的才是真实 family name,例如"Hack"
如果查不到,说明字体根本没注册成功;别急着改 Sublime 设置。
font_face 值必须与系统注册名完全一致
填错一个字符就 fallback,默认字体静默接管。Hack 在多数系统里注册名为 Hack(无空格、无连字符、首字母大写),但某些旧版本或打包方式可能注册为 Hack-Regular 或 Hack Bold。
正确写法示例(仅适用于系统确实注册了 Hack):
{ "font_face": "Hack", "font_size": 12 }
中英混合推荐写法(中文用等宽 fallback 更稳):
{ "font_face": "Hack, Microsoft YaHei", "font_size": 12 }
- 别写成
"hack"(大小写敏感) - 别写成
"Hack Regular"(空格错,系统注册名通常不含样式后缀) - 别用中文引号、全角逗号或末尾多余逗号,JSON 解析失败会导致整段设置被忽略
Linux/macOS 必须刷新字体缓存
哪怕你把 Hack.ttf 复制到了 ~/.fonts/ 或 /usr/local/share/fonts/,不刷新缓存,Sublime 就看不见它。
- Linux:运行
fc-cache -fv(注意-f强制重建,-v显示过程) - macOS:无需
fc-cache,但必须在「字体册」App 中确认 Hack 显示在「电脑」范围下,且状态为「已启用」 - 刷新后立刻验证:
fc-list | grep -i hack(Linux)或字体册搜索(macOS),看到结果再开 Sublime
很多用户卡在这一步:字体明明复制进去了,却反复修改 font_face 无效——其实是缓存没刷,Sublime 根本没加载新字体。
ST4 高 DPI 下 Hack 渲染发虚或方块字怎么办
Hack 是标准等宽字体,但 ST4 启用硬件加速时,某些系统(尤其是 Windows 高分屏、macOS Retina)对非连字等宽字体的 subpixel 渲染支持不稳定,表现为中文标点模糊、符号错位、甚至出现方块。
- 临时缓解:在用户设置中加一行
"gl_hardware_acceleration": false,重启生效 - 更优解:搭配
"font_options": ["subpixel_antialias"](仅 Windows)或["gray_antialias"](macOS/Linux) - 别强行用
"font_options": ["no_antialias"],Hack 本身不依赖抗锯齿,关掉反而更糊
真正难调的不是“怎么装”,而是“怎么让 Hack 在不同 DPI 和渲染路径下都稳定输出清晰字形”——这需要配合系统级字体配置和 Sublime 的渲染开关协同判断。











