editor.fontLigatures 必须设为布尔值 true(非字符串),且需配合支持连字的字体(如Fira Code)及正确字体名;终端连字还需单独配置 terminal.integrated.fontLigatures: true 并确保远程环境已安装对应字体。

editor.fontLigatures 必须设为 true,不是字符串
VSCode 的连字开关 editor.fontLigatures 是布尔值,写成 "true"(带引号)或 "on" 都无效。它只认 true 或 false。很多用户在 GUI 设置里勾选后没生效,就是因为设置没真正写入 JSON,或者被工作区配置覆盖了。
- 直接编辑
settings.json最可靠,路径:Ctrl+Shift+P →Preferences: Open User Settings (JSON) - 确认该字段不在
.vscode/settings.json(工作区级)里被重复或覆盖 - 禁用可能篡改字体的主题插件(如某些“代码高亮增强”类扩展),它们会悄悄重写
fontFamily
fontFamily 字体名必须和系统注册名完全一致
VSCode 不读取你下载的 .ttf 文件,只认操作系统字体册里注册的“全名”。比如 Fira Code 在 macOS 字体册里实际注册名为 FiraCode-Retina,Windows 可能是 Fira Code,而 Maple Mono SC NF 在部分系统显示为 Maple Mono SC NF,CN 版则是 Maple Mono NF CN。差一个空格、连字符或大小写,VSCode 就静默 fallback 到 Consolas 或 monospace。
- Windows:打开
C:\Windows\Fonts搜索确认 - macOS:用「字体册」App → 右键字体 → 「显示简介」→ 复制「全名」字段
- Linux:终端执行
fc-list | grep -i "fira\|maple",看输出的实际名称 - 验证是否加载成功:DevTools Console 里运行
getComputedStyle(document.body).fontFamily,返回值必须含你填的字体名
连字效果依赖 OpenType 特性,不是开个开关就全有
editor.fontLigatures: true 只是启用连字渲染管线,但具体哪些符号能连、怎么连,由字体内置的 OpenType 特性控制。Fira Code 默认靠 calt(上下文替代)实现基础连字(如 != → ≠),但 ==>、!== 这类需要额外开启 ss01~ss05 等样式集;Maple Mono SC NF 则明确依赖 'calt', 'ss01', 'ss04' 才能显示完整箭头和逻辑符。
- 不要写
"editor.fontLigatures": true就以为万事大吉——它只是门,钥匙是特性字符串 - 正确写法示例:
"editor.fontLigatures": "'calt', 'ss01', 'ss04'"(注意单引号包裹、英文逗号分隔) - 特性名大小写敏感,
SS01或ss1都不生效 - 开太多特性(如全写
ss01~ss05)可能导致部分符号渲染异常,建议按需添加
终端连字是另一套机制,不能复用 editor 配置
集成终端(Integrated Terminal)不读 editor.fontLigatures,也不受 editor.fontFamily 影响。它只看 terminal.integrated.fontFamily,且连字是否出现,取决于远程环境(WSL/Remote-SSH)是否装了对应字体、TERM 是否为 xterm-256color、以及 VSCode 版本是否 ≥1.89(terminal.integrated.fontLigatures 字段才有效)。
- 本地配好编辑器连字 ≠ 终端也有连字
- Remote-SSH 场景下,本地装了 Fira Code 没用,必须在远程 Linux 执行
fc-cache -fv并确认fc-list输出含字体名 - 终端字符重叠、光标错位?先关 GPU 加速:
"terminal.integrated.gpuAcceleration": "off" - 终端配置示例:
"terminal.integrated.fontFamily": "'FiraCode-Retina'", "terminal.integrated.fontLigatures": true
editor.fontLigatures 是布尔 true + OpenType 特性字符串精准填写 + 终端单独配。漏掉任意一环,连字就只在某处“若隐若现”,而不是真正全局可用。


















