sublime text 不支持连字效果,因其渲染引擎未实现 opentype liga 特性解析;"font_options": ["liga"] 被静默忽略,仅识别如 "subpixel_antialias" 等有限底层开关;真需连字应换用 vs code、jetbrains ide 或 neovim gui。

Sublime Text 不能真正启用连字效果。截至当前最新稳定版(Build 4143+,2026年7月),它的文本渲染引擎仍未实现 OpenType liga 特性解析,所有看似“生效”的连字,基本是 macOS Core Text 或 Windows DirectWrite 在系统层做的字体 fallback 渲染,Sublime 本身不参与字形替换。
为什么 "font_options": ["liga"] 没反应
因为 Sublime 完全忽略 "liga" 这个值。它的 font_options 数组只识别有限几个底层开关,比如 "subpixel_antialias"、"gray_antialias"、"no_round",但不包含任何 OpenType 特性标识。即使你写对格式、装对字体、重启编辑器,"liga" 仍被静默丢弃。
- 验证方法:把
"font_face"换成"Monaco",再切回"FiraCode-Regular";如果“连字”跟着消失,说明之前根本不是 Sublime 渲染的 -
"font_face"必须填系统注册的全名(如"FiraCode-Regular"),填"Fira Code"或"FiraCode.ttf"都会失败 - 部分用户报告“偶尔生效”,实为旧版系统渲染器的自动行为,不可靠、不一致、不跨平台
哪些操作是白忙活,别再试了
以下常见操作对启用 ligature 完全无效,纯属浪费时间:
- 在
Preferences.sublime-settings中安装多个 Fira Code 变体(如FiraCode-Retina)并挨个试 - 调整
line_padding_*或font_size试图“挤出”连字效果 - 用 Package Control 装所谓“Ligature Support”插件——这类插件只能改语法高亮颜色,动不了字形渲染链路
- 写
"font_options": ["ligatures"]或"font_options": ["liga", "subpixel_antialias"]——前者错用字段名,后者"liga"仍被忽略
真想用连字,该怎么做
换编辑器是最直接的解法。VS Code、JetBrains IDE、Neovide 均原生支持连字开关,配置简单且稳定:
- VS Code:
"editor.fontFamily": "Fira Code", "editor.fontLigatures": true - WebStorm:Settings → Editor → Font → Enable font ligatures
- Neovim GUI:
set guifont=Fira_Code:h12+,并启用g:neovide_font_antialiasing和 HarfBuzz 后端
如果你必须留在 Sublime(比如重度依赖某插件或工作流),那就接受它不支持连字的事实:装好 Fira Code,设好 "font_face" 和 "font_size",用 "subpixel_antialias" 提升清晰度,仅此而已。别指望 font_options 能做它做不到的事——它根本没这条路径。











