VSCode代码区字体粗细仅由"editor.fontWeight"控制,支持normal/bold等字符串或100–900数值(推荐400/500/600),连字需同时开启"editor.fontLigatures":true并使用含ligature表的字体。

字体粗细设置只在 "editor.fontWeight" 里改,别碰系统字体或主题配置
VSCode 的代码区域字体粗细完全由 "editor.fontWeight" 控制,不是靠换字体、调主题色或改 "editor.fontFamily" 实现的。这个值默认是 "normal"(等价于数值 400),设成 "bold" 或 600 以上才会变粗。
常见错误是去系统里装“加粗版”等宽字体(比如 Fira Code Bold),结果发现 VSCode 还是不粗——因为编辑器根本没用那个变体,它只按 fontWeight 去渲染当前字体的可用字重。
-
"editor.fontWeight"支持字符串值:"normal"、"bold"、"lighter"、"bolder" - 也支持数字值:
100–900(推荐用400、500、600这类整数,兼容性最好) - 设成
"bold"后,如果当前字体没有真正 bold 字重(比如某些自定义字体缺失700),VSCode 会模拟加粗,可能发虚或模糊
"editor.fontLigatures" 开关连字,但必须字体本身支持且启用
连字(ligatures)不是 VSCode 自带的功能,它只是把开关递给字体:设 "editor.fontLigatures": true,再配上支持连字的字体(如 Fira Code、JetBrains Mono、Cascadia Code),才能看到 != 变成 ≠、=> 变成 ⇒ 这类效果。
常见错误是开了 fontLigatures 却没换字体,或者换了字体但没确认它是否真带连字表(有些精简版 Fira Code 就删了 ligature 表)。
- 检查字体是否支持连字:在 macOS 上用“字体册”预览该字体,搜 “liga”;Windows 可用 FontForge 打开看 OpenType 特性
- VSCode 设置里必须同时满足两个条件:
"editor.fontLigatures": true+"editor.fontFamily"指向含连字的字体 - 部分字体(如 Cascadia Code PL)需在
fontFamily中显式写全名,例如:"Cascadia Code PL",漏掉" PL"后缀就无效
不同平台下 "editor.fontWeight" 渲染差异大,别信截图
macOS、Windows、Linux 对同一 fontWeight 值的渲染逻辑不同:macOS 更倾向平滑插值加粗,Windows ClearType 下高字重容易发虚,Linux(尤其 X11)常直接 fallback 到模拟加粗。所以你在别人截图里看到的 600 效果,很可能在你机器上是糊的或没变化。
这不是配置错,是底层字体引擎决定的。想稳定控制,唯一办法是选一个自带丰富字重的字体(比如 JetBrains Mono 提供 300–800 全套),然后配合精确数值使用。
- 避免用
"bolder"或"lighter":它们依赖父级继承,在 VSCode 里行为不可控 - 优先测试
400、500、600这三个值,跳过450或573这类非标准值(多数字体根本不提供) - 如果用了
"editor.fontWeight": "bold"发现变糊,立刻换回600并换字体,别调抗锯齿或 subpixel 设置
修改后不生效?先关掉 "editor.fontFamily" 的引号陷阱
很多人复制网上的配置,把 "editor.fontFamily" 写成 "'Fira Code', 'Droid Sans Mono', monospace",单引号被当成字符串一部分,VSCode 会报错并静默忽略整个字段——导致你调了 fontWeight 也白搭。
VSCode 的 JSON 配置只认双引号,所有字体名、路径、值都必须用 " 包裹,不能混用单引号或不加引号。
- 正确写法:
"editor.fontFamily": "'Fira Code', 'Droid Sans Mono', monospace" - 错误写法:
"editor.fontFamily": ''Fira Code', 'Droid Sans Mono', monospace'(开头单引号) - 错误写法:
"editor.fontFamily": Fira Code, Droid Sans Mono, monospace(没引号) - 改完配置后,必须重启 VSCode 窗口(仅重载窗口不够),否则字体相关设置不重新加载
字体粗细和连字看着简单,但实际卡点都在字体本身的支持度和配置格式的细节上。很多人折腾半天,问题其实出在引号没对齐,或者以为开了 fontLigatures 就万事大吉,忘了字体文件压根没连字表。











