必须系统级安装连字字体并正确配置vscode设置才能启用连字:字体需在操作系统中完整安装,settings.json中editor.fontfamily须用单引号包裹含空格字体名、editor.fontligatures设为true,且必须完全退出vscode进程后重启生效。

确认系统已安装支持连字的字体
连字效果不会凭空出现,VSCode 本身不带任何编程连字字体,它只读取操作系统注册的字体。你下载的 Fira Code、JetBrains Mono 或 Cascadia Code 文件(.ttf/.otf)必须完成系统级安装,否则编辑器根本看不到这个字体名。
常见失效原因:双击安装后没重启 VSCode、Windows 下只“预览”没点“安装”、macOS 用拖拽方式放进 /Library/Fonts 而非通过「字体册」导入、Linux 没运行 fc-cache -fv 刷新缓存。
- Windows:打开
C:\Windows\Fonts,搜索Fira Code,应看到完整条目(含FiraCode-Regular.ttf、FiraCode-Bold.ttf等,尤其注意带Ligatures后缀的变体) - macOS:打开「字体册」→ 搜索 → 右键字体 →「显示简介」→ 复制「全名」字段(可能是
FiraCode-Retina,空格或连字符差一个都不行) - 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', 'JetBrains Mono NL', 'Noto Sans CJK SC', monospace" -
"editor.fontLigatures"必须是布尔值true,不是字符串"true";拼写是fontLigatures,不是fontLigature或ligatures - 不要把
monospace加单引号——它是关键字,加了反而失效;中文字体如'Noto Sans CJK SC'必须加单引号,因为含空格
错误示例:"editor.fontFamily": "Fira Code, JetBrains Mono NL"(没单引号 → 找不到字体)、"editor.fontFamily": "'Fira Code', 'monospace'"('monospace' 错误)。
必须完全退出 VSCode 进程才能生效
改完 settings.json 后,仅「重新加载窗口」(Ctrl+Shift+P → Developer: Reload Window)不足以触发连字渲染层重初始化。旧的渲染进程还在内存里,它不会重新读取字体表或 OpenType 特性。
正确做法:
- Windows:右键任务栏 VSCode 图标 →「退出」(不是关闭窗口)
- macOS:按
Cmd + Q(不是关窗 ×) - Linux:确保所有 VSCode 进程被杀干净(
ps aux | grep code+kill -9)
重启后,在 JS/TS 文件里输入 !==、==>、&&、|| 测试。如果仍不变化,说明字体根本没加载成功,别调设置,先回退检查前两步。
中英文混排和终端需单独处理
Fira Code、JetBrains Mono 都是纯西文字体,不含中文字符。代码里有中文注释或字符串时,VSCode 会 fallback 到下一个字体,而 fallback 链配置不当会导致中英文粗细/清晰度不一致,看着“发虚”或“断层”。
解决方案:
- 在
"editor.fontFamily"里显式添加中文字体兜底:'Fira Code', 'Noto Sans CJK SC', 'Microsoft YaHei', monospace - 中文注释多时,建议关掉连字:
"editor.fontLigatures": false(连字对中文无意义,还可能干扰渲染节奏) - 集成终端(Terminal)是独立渲染区域,需单独配:
"terminal.integrated.fontFamily": "'Fira Code', 'JetBrains Mono', 'Consolas'"和"terminal.integrated.fontLigatures": true
字号别设太小(如 12),Windows 下推荐 14、macOS 下 13;行高建议设为 "editor.lineHeight": 1.5 或具体像素值(如 22)。改完务必检查中文注释是否清晰、基线是否对齐——这是配完以为成功但实际“半残”的高发区。











