Windows高分屏需设font_options为["directwrite"]并校准ClearType、禁用DPI缩放覆盖;macOS Retina屏应设["gray_antialias"]并调AppleFontSmoothing;Linux建议删除font_options字段,交由GTK/freetype处理。

Windows高分屏必须用directwrite,不是subpixel_antialias
Sublime Text 4 Build 4126+ 在 Windows 高分屏上默认走 GDI 渲染,对“微软雅黑”“思源黑体”这类中文字体的 hinting 和 subpixel 定位支持极差,小字号边缘毛刺、字重不均、发虚就是典型表现。font_options 必须设为 ["directwrite"] —— 写成字符串 "directwrite" 或漏掉方括号会静默失效,改了也白配。
- 系统 ClearType 必须全程完成向导校准:控制面板 → 显示 → 调整 ClearType 文本 → 每一步都点“下一步”,只勾选不操作等于没开
- 右键 Sublime 快捷方式 → 属性 → 兼容性 → 勾选「替代高 DPI 缩放行为」→ 下拉选「应用程序」,否则 Windows 强制缩放 UI 层,DirectWrite 根本不触发
- 显卡驱动里若开了「覆盖应用程序抗锯齿设置」,临时关掉再测试——它会把 DirectWrite 降级回 GDI
- 别混写
["directwrite", "subpixel_antialias"],冲突后只生效第一个,且subpixel_antialias在高分屏上反而泛绿边
macOS Retina 屏禁用subpixel_antialias,只认gray_antialias
Retina 屏物理像素密度太高,子像素渲染在硬件层面已失效。强行启用 subpixel_antialias 不是“没效果”,而是让中英文边缘泛绿/泛红、整体发虚、纤细无力——这不是字体问题,是机制与屏幕不匹配。
- 先在终端执行:
defaults write -g AppleFontSmoothing -int 2(2 是中等平滑强度,0=关,3=最强) - 用户设置中只加:
"font_options": ["gray_antialias"],删掉所有no_antialias或subpixel_antialias行 -
font_size小于 11.0 时,Core Text 会自动禁用抗锯齿,建议设为11.5或12.0 - 第三方主题(如 ayu、Material Theme)常在
.sublime-theme里硬编码font_options,需全局搜索并统一替换为["gray_antialias"]
Linux 下多数情况该删掉font_options字段
Linux 字体渲染由桌面环境(GNOME/KDE)、GTK 版本和 freetype 共同接管,font_options 不是开关,而是可能触发冲突的干预项。乱填反而让字更糊,尤其在 Wayland 或 HiDPI 缩放场景下。
- 优先删掉整个
font_options字段,让 GTK/freetype 自行决策——现代发行版(GNOME 42+/KDE Plasma 6+)默认效果最稳 - 若必须指定,用
["antialiased"](注意拼写,不是antialias或antialiased字符串),别碰subpixel_antialias:Wayland 会无视它,X11 下又易与 fontconfig hinting 冲突 - 检查
~/.config/fontconfig/fonts.conf是否启用抗锯齿:<edit name="antialias" mode="assign"><bool>true</bool></edit> - Wayland 用户启动时可加环境变量:
GDK_BACKEND=wayland,避免 fallback 到 X11 渲染路径
改完必须完全退出 Sublime,热重载无效
字体渲染管线不会随配置热重载而重初始化。改完 Preferences.sublime-settings 后,仅关闭窗口或 Cmd/Ctrl+W 没用,必须执行完整退出流程:
- macOS:菜单栏 →
Sublime Text → Quit Sublime Text - Windows:任务栏右键图标 →
Exit,或 Ctrl+Shift+P → 输入exit回车 - Linux:命令行启动的需
killall sublime_text,GUI 启动的也得从应用菜单选“退出” - 确认进程已消失后再重启,否则旧渲染上下文还在,新配置压根不加载
最容易被忽略的是第三方主题硬编码的 font_options 和系统级抗锯齿未启用——这两项不处理,哪怕配置全对,字照样糊。


















