editor.letterSpacing 是唯一控制字符间距的配置项,单位为像素,支持小数与负值;修改后需检查配置优先级、避免被覆盖,并执行重载窗口操作才生效。

改 editor.letterSpacing 就行,但值设错、没重载、被覆盖——这三件事占了 90% 的“调了没反应”。
editor.letterSpacing 是唯一生效项
VSCode 没有“字间距”“字母间距”这类界面选项,所有字符水平空隙控制都落在 editor.letterSpacing 这一个配置上。它单位是像素(px),支持小数和负值,本质是在每个字符右侧硬加一段空白。
-
editor.letterSpacing: 0:默认状态,多数人实际看到的就是这个 -
editor.letterSpacing: 0.3:Fira Code / JetBrains Mono 下最稳的起步值,缓解小字号粘连 -
editor.letterSpacing: -0.2:仅在低 DPI 屏 + Consolas 下偶尔有用;低于 -0.4 容易让==、!=看起来像单个符号 - 改
fontSize、开fontLigatures、换fontFamily都不会影响字符间距——只动这个值才起效
为什么改了 settings.json 却没变化?
VSCode 的配置优先级是:语言专属设置 > 工作区 .vscode/settings.json > 用户 settings.json > 默认值。你改的位置,很可能正被更高优先级的配置盖掉。
- 按
Ctrl+Shift+P→ 输入Preferences: Open Settings (JSON),看右上角标签是 User 还是 Workspace - 搜索整个文件里的
"editor.letterSpacing",确认没在"[javascript]"或其他语言块里重复定义 - 某些主题(如 One Dark Pro)会在扩展包里写死
"editor.lineHeight": 0,同理也可能干预letterSpacing,必须在你的 settings.json 里显式重写才能压过 - 改完不 reload 窗口 = 白改。必须执行
Developer: Reload Window,切换 tab 或保存都不行
等宽字体才值得调,中文标点挤不是它的锅
editor.letterSpacing 对 Fira Code、Cascadia Code、JetBrains Mono 这类等宽字体效果明显,微调 0.1 就能改变代码块对齐观感;但对非等宽字体(如 Segoe UI)几乎无感——这不是 bug,是字体度量设计决定的。
- 中文标点(,。!?)挤在一起?这不是
letterSpacing能解决的问题,大概率是editor.fontFamily没配中文字体 fallback,或系统缺少对应汉字字形 - 想让中文舒服,重点检查
"editor.fontFamily": "'Fira Code', 'Microsoft YaHei', 'PingFang SC', monospace"这类 fallback 链是否完整 - 开了
editor.fontLigatures: true却调letterSpacing?小心连字渲染被干扰,建议先关掉再调
最容易被忽略的是:终端、大纲视图、侧边栏树形结构的间距全都不受 editor.letterSpacing 影响,它们各自有独立配置项,比如 terminal.integrated.lineHeight 和 workbench.tree.indent。别指望一个值打遍天下。


















