优先关闭terminal.integrated.gpuAcceleration设为off并设置terminal.integrated.lineHeight为1.2~1.35,同时确保字体已系统安装且TERM=xterm-256color,改后需关闭并重新打开终端生效。

terminal.integrated.gpuAcceleration 设为 off 最直接有效
VSCode 终端光标错位、打字时字母重叠、退格跳行,80% 以上场景是 GPU 加速与显卡驱动(尤其 Intel 核显 + Windows 混合缩放)不兼容导致的。它会让字体光栅化和光标绘制不同步,现象是“按键瞬间糊成一团,松开才恢复正常”。
这不是字体问题,也不是配置写错了——关掉硬件加速就能立刻缓解:
- 打开
settings.json,添加:"terminal.integrated.gpuAcceleration": "off" - 必须关闭所有终端页签,再新开一个;仅
reload window不生效 - Windows 用户若同时用中文输入法,还可顺带加
"disable-hardware-acceleration": true(全局级,影响整个 VSCode 渲染)
terminal.integrated.lineHeight 是解决“字贴一起”的开关
很多人以为换字体就能解决重叠,其实真正压住下一行文字、让连字(ligature)不被切掉的,是行高。默认值 1 在多数等宽字体下垂直空间严重不足,尤其 Cascadia Code PL 或 Fira Code 这类带 Powerline 符号的字体。
- 设为
1.2~1.35是安全区间;1.25覆盖 Win/macOS/Linux 多数场景 - 用了 Nerd Font 或 Powerline 字体?至少设
1.3,否则这类箭头底部常被裁掉 - 别设
0或留空——VSCode 会 fallback 到1,等于白改
fontFamily 必须带 monospace 回退且字体已系统安装
只写 "Fira Code" 是不够的。VSCode 终端不会帮你做字体 fallback 判断,也不会自动下载字体。如果指定的字体没装到系统里,它就用系统默认等宽字体(比如 Ubuntu 的 Ubuntu Mono),而这类字体往往不支持 Unicode 全角对齐,光标立刻偏移。
- 正确写法:
"terminal.integrated.fontFamily": "'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace" - Linux 用户务必运行
fc-list | grep -i "fira\|cascadia"确认字体已安装;没输出就得手动安装并执行fc-cache -fv - Windows/macOS 同样要先去官网下载字体文件,双击安装,不能只在 settings.json 里写名字
TERM 环境变量错配会放大光标错位
当你通过 VSCode 连 WSL、Docker 或远程 Linux 时,终端模拟器实际由远端 TERM 控制。如果它被设成 screen、linux 或旧版 xterm,ncurses 就可能忽略或错译光标移动指令,导致本地光标位置和远端 shell 实际光标完全脱节。
- 在终端里运行
echo $TERM,正常应输出xterm-256color - 如果不是,临时修复:在
~/.bashrc或~/.zshrc末尾加export TERM=xterm-256color - WSL 用户还建议检查是否启用了
wsl.conf中的interop和appendWindowsPath,避免环境变量污染
最常被忽略的是:改完配置后没关终端重开,或者以为改了编辑器字体就自动同步到终端。终端是独立进程,所有改动都得重启终端实例才加载新配置。GPU 加速和行高这两项,哪怕字体再好看,漏掉一个,光标照样错位、文字照样叠。


















