vscode中文行间距优化需关闭editor.fontligatures、用整数像素设editor.lineheight(如字号14配24)、终端用terminal.integrated.lineheight、文件树调workbench.tree.indent至18~20。

VSCode 里调中文行间距,核心不是“中文专属设置”,而是关掉干扰项 + 用对单位 + 分场景配值。 编辑器本身不区分中英文字符,所谓“中文挤”“行贴边”,90% 是 editor.fontLigatures 开启、editor.lineHeight 设错类型、或终端/文件树没单独调导致的连锁反应。
为什么改了 editor.lineHeight 中文还是挤
常见错误现象:设了 26 或 1.5,中文段落依然上下紧贴,甚至 descender(比如「下」字的竖钩)碰到下一行文字。
-
editor.fontLigatures: true必须关掉——Fira Code、Cascadia Code 等字体开启连字后,渲染基线会偏移,直接破坏行高计算,关掉立刻缓解 -
editor.lineHeight混用整数和小数:设24.5会被截断为24;设1.4则是“字号 × 1.4”,但中文字符高度受 fallback 字体影响极大,结果不可控 - 当前主题强制覆盖:很多中文友好主题(如 One Dark Pro Chinese)在
package.json里写了"editor.lineHeight": 0,必须在用户settings.json中显式重写才能生效 - 用了 Nerd Fonts 但没调大值:Nerd Fonts 的 glyph box 更高,
editor.lineHeight至少设到26~28才能避免 descender 贴底
editor.lineHeight 推荐值(针对中文阅读)
等宽字体 + 中文混合场景下,别依赖默认 0 或 1.35,直接设整数像素更稳:
- 字号
14、普通屏:24—— 清晰不空,适合日常编码 - 字号
12、高 DPI 屏(如 4K / Retina):22~23—— 避免虚高跳帧 - 字号
16或用了 Nerd Fonts:26~28—— 给中文标点和全角字符留足垂直余量 - 纯长文本阅读(如 Markdown 笔记):
"[markdown]": { "editor.lineHeight": 30 }—— 语言专属设置优先级高于全局,不影响代码区
终端、文件树这些地方也得单独调
很多人只调编辑器,结果终端里中文日志糊成一片、文件树折叠箭头和文字粘连——它们完全不受 editor.lineHeight 影响:
- 终端行距:用
terminal.integrated.lineHeight,只接受小数(如1.2),填24无效;改完必须点垃圾桶图标杀掉当前终端,再按Ctrl+`重开 - 文件树缩进:靠
workbench.tree.indent(单位像素),默认8太紧凑,中文路径建议设18~20,让「src」和子文件夹之间有呼吸感 - 别碰
explorer.compactFolders:开启它会让路径压缩显示,反而抵消缩进效果,建议设为false
真正难调的不是数值本身,而是不同配置项之间的耦合:比如开了 editor.fontLigatures 又设了 editor.lineHeight,或者终端用了中文字体 fallback 却没配 terminal.integrated.fontFamily。调的时候每次只动一个变量,否则你根本分不清是哪一层在捣鬼。











