24px是多数人长期阅读不累眼的平衡点,比默认自动计算更稳定,可避免等宽字体descender贴行;低于20px易挤,高于28px在高dpi屏滚动有跳帧感。

editor.lineHeight 设多少才不累眼
行高不是调得越高越舒服,24px 是多数人长期阅读的平衡点。它比默认自动计算(约 fontSize × 1.2)更稳定,尤其在等宽字体如 Fira Code 或 JetBrains Mono 下,能避免 descender 贴到下一行。低于 20px 容易挤,高于 28px 在高 DPI 屏上滚动时会有明显“跳帧感”。
常见有效组合:
-
"editor.fontSize": 14→"editor.lineHeight": 24 -
"editor.fontSize": 16→"editor.lineHeight": 26~28(Nerd Fonts 建议用 28) -
"editor.fontSize": 12(小屏/高分屏)→"editor.lineHeight": 20~22
注意:editor.lineHeight 必须是整数,设成 24.5 会被截断为 24;设为 0 表示放弃控制,结果随字体、DPI、缩放比例浮动,不推荐。
editor.letterSpacing 微调别乱加负值
字符间距本质是给每个字符右边界额外加像素空隙,0.3 是最常用且安全的值。它对 Fira Code 这类等宽字体效果明显,能缓解小字号下的视觉粘连;但设成 -0.5 就可能让 == 或 != 操作符看起来像一个符号,尤其在 Consolas 下容易重叠。
生效前提很关键:
- 必须关闭
editor.fontLigatures,否则连字渲染会干扰间距计算 - 改完要执行
Developer: Reload Window(Ctrl+Shift+P 输入),仅保存 settings.json 不够 - 如果用了语言专属设置(比如
"[javascript]"块),它会覆盖全局editor.letterSpacing
中文标点挤在一起?这不是 letterSpacing 能解决的,大概率是字体 fallback 链缺失或 editor.fontFamily 没配好中文字体。
为什么改了没反应?先查这三处覆盖源
VSCode 的配置优先级是:语言专属设置 > 工作区 .vscode/settings.json > 用户 settings.json > 默认值。你看到的“没变化”,往往是因为某一层悄悄覆盖了你的修改。
快速排查路径:
- 按 Ctrl+Shift+P → 输入
Preferences: Open Settings (JSON),确认你编辑的是当前生效的文件(右上角有 User / Workspace 标签) - 搜索
"editor.lineHeight"和"editor.letterSpacing",看是否在多个位置重复出现 - 检查已启用的主题:某些主题(如 “One Dark Pro”)会在
package.json里硬写"editor.lineHeight": 0,必须在用户 settings.json 中显式重写才能压过它
终端、文件树、大纲视图的行距都不受 editor.lineHeight 影响——它们各自有独立配置项,比如 terminal.integrated.lineHeight 和 workbench.tree.indent。
别碰 CSS 注入,它不可靠也不同步
有人用 Developer: Inspect Editor Tokens 找到 .view-line 元素,再手动改 DevTools 里的 line-height CSS 属性,确实能看到变化。但这只是临时 DOM 修改,VSCode 每次更新都可能重置样式表结构,且无法导出、不能同步到其他设备。
真正可持续的做法只有两个:
- 在
settings.json里写死"editor.lineHeight"和"editor.letterSpacing" - 配合
"editor.fontFamily"和"editor.fontSize"一起调,比如把字号从 14 降到 13,再把行高设为 22,比单拉高 lineHeight 更可控
复杂点在于:同一套数值在 Windows 高 DPI、macOS Retina、Linux Wayland 下渲染效果仍有差异,最终得靠你眼睛确认——参数只是工具,不是标准答案。











