连字不显示主因是字体未系统级安装,必须三步全对:系统正确安装fira code、settings.json中用单引号写准字体名(如'fira code')、显式启用"editor.fontligatures": true并完全退出vscode生效。

连字不显示,90% 是字体根本没装进系统,不是 VSCode 设置错了。它不会自动生效,必须三件事全做对:系统级安装字体、VSCode 里写对字体名、显式开启 editor.fontLigatures 开关。
确认 Fira Code 已真正安装到操作系统
VSCode 不读取你下载的 .ttf 或 .zip 文件,只认系统注册过的字体。哪怕 settings.json 里写了 'Fira Code',系统里没它,编辑器就静默 fallback 到 Consolas 或 'Courier New'。
- Windows:打开
C:\Windows\Fonts,搜索Fira Code,必须看到带图标的完整条目(含FiraCode-Regular.ttf、FiraCode-Bold.ttf等,尤其要装带Ligatures后缀的变体) - macOS:打开「字体册」,搜索
Fira Code→ 右键 →「显示简介」→ 复制「全名」字段(常见是FiraCode-Retina或Fira Code,空格/连字符差一个都不行) - Linux:终端执行
fc-list | grep -i "Fira Code",有输出才算成功;若无,把.ttf放进~/.local/share/fonts/后运行fc-cache -fv - 验证方式:打开记事本(Windows)或 TextEdit(macOS),在字体列表里能搜到、选中后输入
=>或!=能直接显示为连体符号,才算真正就位
settings.json 中正确配置 editor.fontFamily 和 editor.fontLigatures
GUI 设置界面容易吃掉引号或自动补全错误,建议直接改 settings.json。字体名必须与系统注册名完全一致,否则解析失败,跳过该字体继续往后找。
-
editor.fontFamily值里,每个带空格或特殊字符的字体名必须用单引号包裹:'Fira Code',不能写成Fira Code或"Fira Code" - 多个字体用英文逗号分隔,西文字体优先:
'Fira Code', 'Noto Sans CJK SC', 'Microsoft YaHei', monospace -
editor.fontLigatures必须是布尔值true,不是字符串"true";拼写是fontLigatures,不是fontLigature或ligatures - 改完后必须**完全退出 VSCode 进程**(Windows 右键任务栏 →「退出」,macOS 按
Cmd + Q),否则旧渲染进程还在,连字不生效
为什么 => 显示了,但 === 或 **= 还是分开?
连字不是“开了就全有”,它取决于字体文件是否真包含了对应连字形(glyph)。Fira Code 默认只覆盖常见组合(==、=>、!=、-> 等),===、**=、??= 等不在默认列表里。
- 查官方连字支持表:Fira Code GitHub README 里的
Ligatures表格,确认你要的符号组合是否被支持 - 某些字体(如
JetBrains Mono)需额外启用变体:'JetBrains Mono NL'中的NL表示 No Ligatures,反而是关闭连字;要用'JetBrains Mono'或'JetBrains Mono PL'(PL = Programming Ligatures) - TypeScript/JSX 中的
=>或有时因语法高亮层叠导致渲染异常,不是字体问题,可临时关掉editor.semanticHighlighting验证 - 中英文混排时,只要一行出现中文,整行连字可能失效——这是 fallback 链冲突导致,不是 bug,得靠兜底字体和合理顺序缓解
别漏掉终端和远程环境的字体配置
连字只作用于编辑器文本区,集成终端是另一套机制。很多人配完编辑器发现 ls 或 git log 还是默认字体,就是因为没单独设终端字体。
- 终端字体靠
terminal.integrated.fontFamily单独配置,值格式和编辑器一致,也必须是系统已安装字体:"terminal.integrated.fontFamily": "Fira Code"(注意这里不需要单引号,也不需要fontLigatures字段) - Remote-SSH / WSL 场景下,
terminal.integrated.fontFamily只起提示作用,真正生效的是远程系统是否安装了 Fira Code;本地装了没用 - 终端字符重叠或光标错位?可微调:
"terminal.integrated.letterSpacing": 0.5 - 终端不支持连字开关,连字是否生效完全取决于字体本身 + 终端渲染引擎,所以务必先确认远程系统也装好了字体
最容易被忽略的是:字体名大小写/空格/连字符必须和系统注册名严丝合缝,且所有配置改完后必须彻底退出 VSCode 进程——热重载或仅重启窗口,旧渲染上下文还在,连字就是不出现。











