sublime text中font_face必须使用系统注册全名而非文件名,macos需从字体册复制完整名称,windows查字体属性,linux用fc-list;nerd font补丁版才能支持图标,配置时需用字体链并避免混用原版与补丁版。

Sublime Text里font_face必须写全名,不能只写“JetBrains Mono”
系统字体册注册的名称和你下载压缩包里的文件名经常不一致。比如 macOS 上安装后实际注册名可能是 JetBrains Mono,但 Windows 下可能带版本号变成 JetBrainsMono-Regular 或 JetBrains Mono Regular;Linux 用 fc-list | grep JetBrains 查到的才是真实名。直接写错一个空格或大小写,Sublime 就静默 fallback 到默认字体,连报错都没有。
实操建议:
- macOS:打开「字体册」→ 搜索 JetBrains → 右键字体 →「在字体册中显示」→ 点击字体预览页顶部的完整名称(不是文件名),复制粘贴进配置
- Windows:进入「控制面板 → 字体」,找到 JetBrains Mono,右键属性看「字体名称」字段
- Linux:终端执行
fc-list : family | grep -i jetbrains,取输出中引号内的内容 - 配置时用双引号包裹,例如:
"font_face": "JetBrains Mono",不要加 .ttf 后缀,也不要用斜杠或路径
需要图标支持?必须装 Nerd Font 补丁版,原版 Jetbrains Mono 不行
如果你用的是 PowerLine 状态栏、文件图标插件(如 A File Icon)、或自定义侧边栏符号,原版 JetBrains Mono 不含 Nerd Fonts 图标集(比如 、、),哪怕开了 ligatures 也只会显示方块或空白。这不是 Sublime 设置问题,是字体本身没这些 glyph。
实操建议:
- 去 GitHub 下载
JetBrainsMono Nerd Font(注意名字带Nerd Font,不是原版) - 安装方式和原版一致,但配置时 font_face 要写补丁版注册名,常见为
JetBrainsMono Nerd Font或JetBrainsMonoNF - macOS/Linux 用户务必在 font_face 中显式列出字体链,例如:
"font_face": "JetBrainsMono Nerd Font, DejaVu Sans Mono, monospace",避免系统 fallback 到无图标的字体 - Windows 用户额外加一行:
"font_options": ["no_directwrite"],否则 DirectWrite 渲染会跳过 Nerd Font 的符号映射
macOS 上单写 font_face 容易失效,必须配 font_size + 字体链
macOS 的 Core Text 渲染机制对单一字体声明容忍度低。只写 "font_face": "JetBrains Mono",系统可能 fallback 到 .SF Mono 或其他系统等宽字体,导致连字(ligatures)失效、数字不对齐、甚至中文显示异常。
实操建议:
- 至少同时设置
font_size(如13或14),强制触发字体重载 - font_face 值必须是逗号分隔的字体链,末尾保留
monospace保底,例如:"font_face": "JetBrains Mono, SF Mono, Menlo, monospace" - 如果用了 Nerd Font 版本,链中优先放补丁字体,再放备用等宽字体,顺序不能颠倒
- 改完配置保存后,用
Cmd+Shift+P→UI: Refresh(如有该命令)或重启 Sublime,别只靠 Cmd+R
连字(ligatures)开启后部分符号显示异常?检查 font_options 和渲染后端
JetBrains Mono 的连字功能(如 == 渲染成 ≡、!= 渲染成 ≠)依赖 Sublime 的文本渲染后端。macOS 默认用 Core Text,Windows 默认用 DirectWrite,而后者对连字支持不稳定——尤其在高 DPI 屏幕或缩放比例非 100% 时,常出现连字断裂、符号重叠或光标错位。
实操建议:
- macOS:无需额外设置,确保
"font_options": []或干脆不写这一项 - Windows:明确禁用 DirectWrite:
"font_options": ["no_directwrite"],否则连字大概率失效 - Linux:多数发行版用 FreeType,默认支持良好,但若用 Wayland + Qt 应用混用,建议加
"font_options": ["gray_antialias"]提升清晰度 - 连字开关是全局的:
"font_ligatures": true,但它只对当前 font_face 生效;换字体链后需重新验证
最易被忽略的一点:Nerd Font 补丁版和原版不能共存于同一 font_face 链中混用——比如写成 "JetBrains Mono, JetBrainsMono Nerd Font",系统会优先匹配前者并终止查找,后续字体完全不生效。字体链是「从左到右第一个能渲染全部字符的字体」,不是「拼凑使用」。











