editor.fontWeight支持normal、bold及100–900整百数值,但实际生效取决于字体是否内置对应字重;推荐安全值为300–600,700慎用以防字符对齐异常。

editor.fontWeight 能设哪些值?不是所有数字都有效
VSCode 的 editor.fontWeight 支持数值(100–900)和关键字(normal、bold),但实际生效取决于你选的字体是否真有对应字重。比如 'Fira Code' 通常只提供 300/400/500/600/700 几档,填 "800" 可能被降级为 "700",而 "100" 在多数编程字体里根本不存在,会 fallback 到 "normal"。
常见安全值:
-
"300"或"light":适合 Fira Code Light、JetBrains Mono ExtraLight -
"400"或"normal":绝大多数字体的默认正文粗细 -
"500"或"medium":比默认稍重,适合视力偏弱或高分屏 -
"600"或"semi-bold":部分字体支持,视觉更稳重 -
"700"或"bold":慎用,容易让等宽字符宽度微变,影响对齐感
改了 editor.fontWeight 没反应?先查这三件事
字体粗细不生效,90% 不是配置写错,而是底层没加载到预期字重。
- 确认字体本身带该字重:在系统字体册(macOS 字体册 / Windows 控制面板「字体」)里搜字体名,看有没有
FiraCode-Light.ttf或JetBrainsMono-Bold.ttf这类独立文件;光靠"Fira Code"这个家族名,不代表所有字重都已安装 - 检查
editor.fontFamily是否写了完整路径或别名字体:比如 macOS 上装了Operator Mono,但 settings.json 里写的是"Operator Mono",而系统注册名其实是"OperatorMonoSSm",这时 fontWeight 就不会触发 - 避免工作区设置覆盖:打开项目根目录下的
.vscode/settings.json,确认里面没写死"editor.fontWeight": "normal"—— 它会优先于用户级设置
连字(ligatures)开启后,fontWeight 表现可能异常
启用 editor.fontLigatures: true 后,某些字体(如 Fira Code、Cascadia Code)会把 ==、=> 渲染成连字符号,此时字体引擎可能绕过常规 weight 渲染路径,导致 "500" 看起来和 "400" 差别极小,甚至更模糊。
如果你同时开了连字又想调粗细:
- 优先换字体:Cascadia Code PL(Powerline 版)对 weight 变化响应更稳定
- 关闭 ligatures 测试:临时设
"editor.fontLigatures": false,看 weight 是否恢复预期效果 - 别混用 keyword 和 number:比如
"fontLigatures": true+"fontWeight": "bold"在旧版 VSCode(
终端字体粗细要单独配,editor.fontWeight 不管用
集成终端(Integrated Terminal)完全走另一套渲染逻辑,editor.fontWeight 对它零影响。必须显式配置:
-
"terminal.integrated.fontFamily":和编辑器一样,需确保字体已安装且含对应字重 -
"terminal.integrated.fontWeight":同样支持 100–900 和关键字,但终端字体往往更“钝”,"500"以上才明显可见变化 - 注意 GPU 加速干扰:某些 Intel 核显驱动下,终端开启硬件加速时 fontWeight 渲染失真,可加启动参数
code --disable-gpu验证
真正难调的从来不是参数值,而是你手头那款字体到底有没有把 “400” 和 “500” 当两套独立轮廓来实现 —— 多数免费编程字体只做一套轮廓+插值,weight 变化只是伪粗细。











