不能。Sublime Text 4(Build 4143+)不支持原生连字,font_options中的"liga"被静默忽略,所谓连字实为macOS/Windows系统渲染层临时代劳,效果不稳定、不跨平台、不可靠。

Sublime Text 4(Build 4143+)能显示 Fira Code 连字,但不是靠自己渲染——它把 liga 选项静默忽略,实际靠系统底层(macOS Core Text / Windows DirectWrite)临时“代劳”;效果不稳定、不跨平台、不能当真用。
为什么 font_options: ["liga"] 配了也没反应
因为 Sublime 的渲染引擎根本不解析 OpenType liga 特性。你写进去的这个值会被直接丢弃,连警告都没有。所有声称“加了就生效”的教程,基本是把系统级自动连字误认为 Sublime 原生支持。
-
font_options数组只认几个底层开关:"subpixel_antialias"、"gray_antialias"、"no_round","liga"不在白名单里 - 即使你填对字体名、装对版本、重启编辑器,
"liga"依然被跳过 - 验证方法:把
font_face换成"Monaco",再切回"FiraCode-Regular";如果连字跟着消失,说明之前根本不是 Sublime 在干活
font_face 必须填系统注册的全名,错一个字符就回退默认字体
Sublime 不会报错,但只要和系统字体册/缓存里的注册名不完全一致(大小写、空格、连字符、后缀),就会静默 fallback 到 Courier New 或 Menlo。
- Windows:查字体属性 → “字体名称”字段,通常为
"Fira Code"(带空格),不是"FiraCode"或"FiraCode-Regular" - macOS:打开「字体册」→ 搜索 Fira Code → 点开详情 → 看「全名」,常见是
"FiraCode-Retina"或"FiraCode-Regular",注意有无空格和连字符 - Linux:运行
fc-list | grep -i fira,取输出中第一列完整路径后的名称,再执行fc-cache -fv - 别写
"Fira Code.ttf"或"FiraCode"—— 这些都不是注册名
中英文混排必须用 fallback 字体列表,单填 Fira Code 必出方块
Fira Code 几乎不含中文字符,设成唯一 font_face 后,注释或字符串里的中文会变成 □□□。
- 正确写法是逗号分隔的 fallback 列表:
"Fira Code, PingFang SC, Microsoft YaHei" - 顺序不能颠倒:第一个负责英文+连字,后面按优先级兜底中文
- macOS 必须含
PingFang SC或Heiti SC;Windows 推荐Microsoft YaHei或YaHei Consolas Hybrid - 删掉
"subpixel_antialias"—— 它会让多数中文字体更模糊
连字效果不可靠,别拿它当开发依据
即使某次看着“生效”了(比如 != 显示成 ≠),也只是系统渲染层偶然配合的结果。换台机器、升级系统、甚至改个主题都可能断掉。
- BracketHighlighter、TrailingSpaces 等老插件依赖字符边界,连字会导致光标定位偏移、匹配失效
- 内置终端(如 Terminus)完全不走同一套渲染链路,连字必然不出现
- 侧边栏、标签页、状态栏字体压根不读
font_face,得改主题文件,且重启才生效
真正想稳定用连字,换 VS Code、JetBrains IDE 或 Neovide 是最省事的选择;留在 Sublime 就得接受它不支持的事实——这不是配置技巧问题,是架构限制。


















