Fira Code连字在Sublime Text中启用需同时满足三个条件:Sublime版本≥4143、font_face与系统注册名完全一致、font_options精准设为["liga"](新版)或["liga","subpixel_antialias"](旧版)。

Fira Code 连字在 Sublime Text 里能用,但不是装完字体、改个 font_face 就自动亮起来——它卡在三个硬性条件上,漏掉任一环,!= 永远不会变成 ≠。
Sublime 版本必须 ≥ 4143(ST4 Build 4143+)
旧版 ST3 或 ST4 早期构建(如 4126)虽支持 font_options,但连字渲染极不稳定:部分符号(如 ==>)可能失效,&& 和 || 常被忽略。Build 4143 是连字功能真正可用的分水岭;4.4085+ 更要求显式写 ["liga"],写 ["subpixel_antialias"] 会被静默忽略。
- 查版本:菜单 → Help → About Sublime Text,确认 Build 号 ≥ 4143
- 低于该版本:别折腾
font_options,装插件(如FontSettingsOverride)也无效,升级是唯一解 - 升级后务必完全退出再重开,仅关闭窗口不生效
font_face 必须和系统注册名完全一致
Sublime 不认文件名(FiraCode-Regular.ttf)、不认网页简称(Fira Code),只认操作系统字体注册表里的“全名”。填错一个空格或大小写,就静默 fallback 到 Consolas。
- Windows:打开「字体设置」→ 搜索
Fira Code→ 点开详情看显示名称,通常是"Fira Code"(带空格,需加引号) - macOS:打开「字体册」→ 搜索 → 右键字体 → 「显示简介」→ 复制「全名」字段,常见为
"FiraCode-Retina"或"FiraCode-Regular"(无空格,无括号) - Linux:终端运行
fc-list | grep -i fira,取输出中引号内的完整字符串,如"FiraCode-Regular:style=Regular"→ 实际填"FiraCode-Regular" - 验证方式:新建文件,输入
abc,右键 → Inspect Element → 看font-family是否匹配你填的值
font_options 必须是数组且顺序/内容精准
font_options 不是开关,是渲染指令集。写成字符串("liga")、写错顺序、混用冲突参数,都会导致连字不触发或文字发虚。
- ST4.4085+:只写
["liga"],其他选项(如subpixel_antialias)会干扰连字,尤其 macOS 上易变毛边 - ST4.4143–4.4084:可试
["liga", "subpixel_antialias"](Windows/Linux)或["liga", "gray_antialias"](macOS) - 绝对不能写
["ligatures"]或["enable_ligatures"]—— Sublime 不识别这些关键词 - 必须写在用户设置(Preferences → Settings 右侧)顶层 JSON 里,左侧默认设置改了无效
中英文混排时连字仍失效?fallback 写法有陷阱
单写 "Fira Code" 会导致中文注释变方块,但加 fallback 后连字又常消失——因为 Sublime 的 fallback 是线性兜底:一旦命中中文字符,后续字体链直接终止,font_options 只对第一个字体生效。
- 正确写法:
"font_face": "FiraCode-Regular, PingFang SC, Microsoft YaHei"(macOS)或"Fira Code, Microsoft YaHei, monospace"(Windows) - 关键点:第一个字体必须是含连字的英文专用字体(
FiraCode-Regular优先于Fira Code),且不能带引号包裹整个列表 - 别信
"font_face": ["Fira Code", "YaHei"]—— 数组写法被 Sublime 完全忽略,静默 fallback - 验证中文是否走对字体:Ctrl+Shift+P → 输入 Developer: Show Scope Name,光标停在中文上,若 scope 含
source.chinese,说明中文已由 fallback 字体渲染
连字最终是否生效,不取决于配置多漂亮,而取决于字体文件本身是否含连字表、系统是否加载成功、Sublime 是否把指令传到底层渲染器——这三者像齿轮咬合,差一齿就空转。最省事的验证方式:新建文件,敲 != == => && ||,盯着看有没有变样,别依赖插件提示或截图对比。


















