VSCode终端字体发虚主因是terminal.integrated.gpuAcceleration错误启用GPU光栅化,应设为"off"并重启终端;同时需配合设置lineHeight≥1.25及正确安装配置字体。

VSCode终端字体发虚,90%不是字体选得不对,而是terminal.integrated.gpuAcceleration在错误地调用GPU光栅化——尤其在Linux和部分Windows集成显卡上,它会让Skia把字符边缘渲染成半透明像素,直接糊成一片。
为什么terminal.integrated.gpuAcceleration是元凶
VSCode 1.85+ 默认开启终端 GPU 加速,但底层依赖 Skia 的 subpixel 光栅化。多数开源驱动(Intel i915、AMD amdgpu)和部分 Windows 核显驱动对 subpixel 支持不完整,结果就是:
- 小字号文字边缘发灰、无锐度
- 连字(ligature)或 Powerline 符号被模糊覆盖
- 下划线压住下一行文字,光标定位偏移
- 退格/删除时字符残留“拖影”
这不是抗锯齿开关没开,而是光栅化路径本身算错了像素值。
terminal.integrated.gpuAcceleration必须设为"off",不是false
settings.json 中的写法有严格要求:
- ✅ 正确:
"terminal.integrated.gpuAcceleration": "off"(字符串"off") - ❌ 错误:
"terminal.integrated.gpuAcceleration": false(布尔值会被忽略) - ❌ 错误:
"terminal.integrated.gpuAcceleration": "auto"(仍可能触发GPU)
改完后必须关闭所有已打开的终端页签(不只是关闭面板),再按 Ctrl + ` 新开一个——旧进程仍绑定在 GPU 渲染上下文中,reload window 不生效。
terminal.integrated.lineHeight不设对,关了GPU也白搭
行高太小会放大渲染缺陷,尤其用 Cascadia Code PL 或 Fira Code 这类带符号扩展的字体时:
- 默认值
1或空值 → fallback 到1,垂直空间严重不足 - 推荐设为
1.25:覆盖 Win/macOS/Linux 多数场景,避免字符粘连 - 若用了 Nerd Font,至少设
1.3,否则底部箭头常被裁掉 - 别设
0或负值——VSCode 不识别,等同未配
这个值和 GPU 加速是联动项:关了 GPU 后,行高才真正起作用;两者不配对,终端照样糊。
字体本身必须已安装,且fontFamily写法不能错
VSCode 终端不做字体 fallback 推理,只做系统级匹配:
- Windows/macOS:去
fonts:(Win+R)或字体册确认Cascadia Code已安装,没出现就白配 - Linux:运行
fc-list | grep -i "cascadia",无输出需手动安装并执行fc-cache -fv - 配置必须用英文双引号包裹,多个字体用英文逗号分隔:
"terminal.integrated.fontFamily": "Cascadia Code, JetBrains Mono, monospace" - 禁止单引号嵌套空格字体名:
'Cascadia Code'在 Windows 下会被 Electron 解析失败
字体没装、名字写错、引号混用——这三类问题比渲染设置更隐蔽,排查时优先验证。


















