直接改editor.lineHeight设为整数像素值(如24)最稳,超28在高DPI屏滚动会跳帧,低于20易致等宽字体descender贴行;改后无效常因主题覆盖、fontLigatures开启、工作区设置误用或插件干扰。

直接改 editor.lineHeight 就行,设成整数像素值(比如 24)最稳,别信“调高就舒服”的直觉——超过 28 在高 DPI 屏上滚动会跳帧,低于 20 容易让等宽字体的 descender 贴到下一行。
为什么改了 editor.lineHeight 没反应
不是配置写错了,而是被更高优先级的设置或机制压住了:
- 当前主题的
package.json里写了"editor.lineHeight": 0,它会覆盖你的用户设置,必须在settings.json中显式重写才能生效 - 开了
editor.fontLigatures: true,尤其用 Fira Code 或 Cascadia Code 时,连字渲染会干扰基线对齐,关掉立刻见效 - 你在项目根目录的
.vscode/settings.json里设了值,但误以为改的是全局设置——打开命令面板Ctrl+Shift+P→Preferences: Open Settings (JSON),看右上角标签是User还是Workspace - 某些插件(如 Bracket Pair Colorizer)注入的 inline 元素会撑高行高,临时禁用插件测试能快速定位
editor.lineHeight 设整数还是小数
VSCode 对这两类值的处理逻辑不同,混用容易踩坑:
- 设整数(如
24)→ 单位是像素,跨平台渲染一致,推荐主力开发环境使用 - 设小数(如
1.4)→ 表示“字体大小 × 倍数”,但实际高度仍取决于字体 ascender/descender,在 Nerd Fonts 或高 DPI 屏下容易虚高或贴边 - 设
0→ 启用自动计算(约等于fontSize × 1.2),结果不可控:JetBrains Mono 可能出23px,Fira Code 出21px,换台电脑就变样 -
editor.lineHeight必须是整数,24.5会被截断为24,视觉上几乎无变化
终端、文件树、语言专属行距要单独配
editor.lineHeight 只管编辑器主区域,其他地方完全不受影响:
- 集成终端行距用
terminal.integrated.lineHeight(只接受小数倍数,如1.2),改完需关闭并重开终端面板才生效 - 文件资源管理器、大纲视图等树状结构靠
workbench.tree.indent(单位像素,推荐16~20),默认8太紧凑,设成20后折叠箭头和文件名之间立刻有呼吸感 - 只想给 Markdown 或 JSON 加宽松行距,写成
"[markdown]": { "editor.lineHeight": 30 },语言专属设置优先级高于全局 - 别试图用 CSS 覆盖——通过
Developer: Inspect Editor Tokens改样式表虽可行,但每次 VSCode 更新都可能失效
真正难调的不是数值本身,而是不同配置项之间的耦合:比如开了 editor.fontLigatures 又设了 editor.letterSpacing,等宽字体的连字和字符间距会互相干扰;再比如 workbench.tree.indent 和 explorer.compactFolders 一起开,缩进效果会被压缩抵消。这些细节不排查清楚,光调 editor.lineHeight 永远觉得“差点意思”。


















