不能。sublime text 4截至build 4143+仍未实现opentype liga特性解析,font_options中的"liga"被静默忽略,所谓连字实为系统渲染层回退所致,非编辑器原生支持。

Sublime Text 4 真的能启用 ligature 吗?
不能。截至当前最新稳定版(Build 4143+,2026年4月),Sublime Text 的文本渲染引擎仍未实现 OpenType liga 特性解析。所有声称“配置 font_options: ["liga"] 就能显示 !=→≠、==>→⟹ 的教程,基本源于视觉误判或版本混淆——你看到的“连字”,大概率是系统字体回退(fallback)时由 macOS / Windows 渲染层代劳的,Sublime 本身并未参与字形替换。
为什么加了 "font_options": ["liga", "subpixel_antialias"] 还是没反应?
因为 Sublime 忽略 "liga" 这个值。它的 font_options 数组只识别有限几个底层渲染开关(如 "subpixel_antialias"、"gray_antialias"、"no_round"),但不包括任何 OpenType 特性标识。即使你写对格式、装对字体、重启编辑器,"liga" 仍被静默丢弃。
- 验证方法:把
font_face换成"Monaco"或"Consolas",再切回"Fira Code";如果“连字”跟着字体切换消失,说明之前根本不是 Sublime 在渲染连字,而是系统在帮你“猜” -
font_face必须填系统注册的全名(如"FiraCode-Regular"),填"Fira Code"或"FiraCode.ttf"都会失败 - 部分用户报告“偶尔生效”,实为旧版 macOS Core Text 或 Windows DirectWrite 的自动连字行为,不可靠、不一致、不跨平台
哪些操作是白忙活,别再试了
以下常见操作对启用 ligature 完全无效,纯属浪费时间:
- 在
User.sublime-settings里反复调整font_options顺序(比如把"liga"放第一位) - 安装多个 Fira Code 变体(
FiraCode-Bold、FiraCode-Retina)并挨个试 - 改
line_padding_*或font_size试图“挤出”连字效果 - 用 Package Control 装所谓“Ligature Support”插件——这类插件只能改语法高亮颜色,动不了字形渲染链路
真想用连字,该怎么做?
换编辑器是最直接的解法。VS Code、JetBrains IDE、Neovide 均原生支持 fontLigatures 开关,配置简单且稳定:
- 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" 提升清晰度,仅此而已。连字不是功能缺陷,是设计取舍——轻量、快、稳定,代价就是不碰现代字体特性。











