关闭terminal.integrated.gpuacceleration设为off可立刻缓解文字重叠与打字瞬间字母挤在一起问题,尤其在windows+intel核显+混合缩放场景下;需配合设置lineheight为1.2–1.25、显式声明等宽fontfamily并以monospace回退,且必须重启终端生效。

terminal.integrated.gpuAcceleration 设为 off 能立刻缓解重叠
VSCode 终端文字重叠、打字瞬间字母挤在一起,八成是 GPU 加速和字体光栅化不同步导致的。尤其在 Windows + Intel 核显 + 混合缩放(比如 125% 或 150% DPI)场景下,terminal.integrated.gpuAcceleration 默认值 "auto" 会触发渲染错位。
直接关掉它最有效:
- 打开设置(
Ctrl + ,),搜gpuAcceleration - 把
terminal.integrated.gpuAcceleration改成"off" - 必须关闭所有终端页签,再新开一个——改完不重启终端,等于没改
这不是性能妥协,而是绕过 Electron 在特定硬件组合下的已知渲染缺陷。关掉后,文字清晰度、光标定位、退格响应都会立刻变稳。
lineHeight 太小会让等宽字体也“贴脸”
很多人只换字体,却忽略 terminal.integrated.lineHeight。哪怕你用了 Fira Code,设成 1.0 或留空(默认约 1.0),字符上下紧贴,视觉上就像重叠或下划线压住下一行。
推荐值不是凭感觉,而是实测有效的区间:
-
1.2:通用稳妥值,兼顾密度与可读性 -
1.25:高 DPI 屏(如 4K/Retina)下更舒适 -
1.0或0.9:绝对要避免,尤其搭配 Nerd Font 或连字字体时
注意:lineHeight 是倍数,不是像素值;它影响的是行间距,和 fontSize 独立作用。
fontFamily 必须显式声明,且顺序决定 fallback 行为
terminal.integrated.fontFamily 不是“选个好看字体就行”,它是终端排版的底层契约。写错顺序或漏掉回退项,就会触发系统默认字体(比如 Windows 的 Consolas 在某些缩放下不等宽,macOS 的 Monaco 缺少中文支持)。
正确写法要满足三个条件:
- 首项必须是你已安装的编程等宽字体(如
"Fira Code"、"Cascadia Code"),名称需和系统字体管理器里显示的**完全一致**(含空格、大小写) - 中间加一到两个兼容性好的备选字体,比如
"JetBrains Mono"、"DejaVu Sans Mono" - 末尾强制加
monospace,防止字体缺失时退化成非等宽字体,引发光标错位
示例:"Fira Code", "JetBrains Mono", monospace —— 这样写,哪怕 Fira Code 没装,也不会崩到 Microsoft YaHei 那种非等宽字体上。
远程终端(WSL/SSH)字体配置根本不起作用
你在本地 VSCode 里把 fontFamily、gpuAcceleration 全配得明明白白,但一连 WSL 或 Remote-SSH,终端还是糊、还是叠?那是因为:终端进程跑在远程系统上,它只认远程机器装了什么字体、$TERM 是什么、有没有启用 ncurses 256 色支持。
关键检查点:
- 进远程终端后执行
echo $TERM,必须是xterm-256color(不是screen或linux) - 确认远程系统已安装对应字体(例如 Ubuntu 上用
sudo apt install fonts-cascadia-code) -
terminal.integrated.gpuAcceleration在远程场景下无效——那是本地 Electron 渲染开关,远程终端靠的是远端 TTY 和 SSH 协议传字符,不走本地 GPU
真正起作用的,是远程 shell 的 ~/.bashrc 或 ~/.zshrc 里是否设置了正确的 LANG、LC_CTYPE,以及是否加载了 powerline 或 nerd-font 相关的提示符补丁。











