VSCode 字间距由 editor.letterSpacing 控制,单位为像素,支持正负小数;它增加字符间水平空白,非字体kerning,值为0时默认无额外间距,调整后需重载窗口生效。

VSCode 字间距设置靠 editor.letterSpacing
VSCode 没有“字间距”这个直观选项,真正起作用的是 editor.letterSpacing 配置项,单位是像素(px),支持小数。它控制的是字符之间的水平空白增量,不是字体本身的 kerning 或 tracking,所以效果偏机械但稳定。
常见错误现象:editor.fontLigatures 开关、editor.fontFamily 切换、甚至改 fontSize 都不会影响字符间距——只改这个值才生效。
- 值为
0:默认无额外间距(多数人实际看到的就是这个) - 值为
0.5:轻微拉宽,适合高分屏或小字号阅读 - 值为
-0.3:略微收紧,部分等宽字体在低分辨率下显拥挤时可用 - 负值过大(如
-1)会导致字符重叠,尤其在Consolas或Fira Code下明显
修改位置:用户设置 vs 工作区设置
editor.letterSpacing 可以设在用户级(全局)或工作区级(仅当前文件夹),优先级后者更高。别误以为改了设置文件就立刻生效——VSCode 会缓存渲染样式,改完要手动触发一次编辑器重绘(比如切换标签页、或按 Ctrl+Shift+P → 输入 Developer: Reload Window)。
使用场景:团队协作项目里,若某人用了超大间距导致 PR diff 显示错位,大概率就是他本地工作区设置了 editor.letterSpacing 而没同步到 .vscode/settings.json。
- 用户设置路径:
Ctrl+,→ 右上角点击 {} 图标 → 搜索letterSpacing→ 直接编辑数值 - 工作区设置路径:项目根目录下
.vscode/settings.json中添加"editor.letterSpacing": 0.3 - 注意:如果同时存在用户级和工作区级设置,工作区的值会覆盖用户级
字体本身对 letterSpacing 效果的影响很大
等宽字体(如 Fira Code、JetBrains Mono)对 letterSpacing 更敏感,微调 0.1 就可能改变代码块对齐观感;而非等宽字体(如 Segoe UI)几乎看不出变化——这不是 bug,是字体度量设计决定的。
性能影响极小,但兼容性有坑:旧版 VSCode(
- 推荐搭配
editor.fontFamily一起测试,比如:"editor.fontFamily": "'Fira Code', 'Cascadia Code', monospace" - 不要指望靠加大
letterSpacing来解决中文标点挤在一起的问题——那是字体缺失或 fallback 链配置问题 - 如果开了
editor.smoothScrolling,间距变化时滚动动画可能出现轻微卡顿(仅高 DPI 屏幕易察觉)
为什么改了没反应?检查这三点
最常踩的坑不是配置写错,而是被其他机制覆盖或忽略:
- 主题插件强制重写了
editor.letterSpacing(比如某些“高可读性”主题会在激活时注入自己的值) - 你正在看的文件类型被语言专属设置覆盖,例如在
settings.json里写了"[javascript]": { "editor.letterSpacing": 0 },那 JS 文件就无视全局值 - 终端(Terminal)面板完全不响应
editor.letterSpacing—— 它走的是terminal.integrated.fontSize和字体渲染链,和编辑器无关
复杂点在于:这个值没有实时预览,也不能用颜色/粗细那种视觉反馈来校准;每次调整都得靠眼睛比对相邻字符间隙,尤其是 ==、=>、// 这类符号组合是否“呼吸感”合适。容易被忽略的是——不同缩放级别下,相同像素值带来的视觉增幅并不线性。











