直接修改 textCodeBlock.background 即可自定义 Markdown 代码块背景色,需在用户 settings.json 的 workbench.colorCustomizations 中配置,仅对 .md 文件预览生效,不适用于其他文件类型或第三方预览插件。

直接改 textCodeBlock.background 就行
VS Code 里「代码块背景色」指 Markdown 文件中 ``` 包裹的那段高亮区域,不是编辑器整体背景,也不是语法高亮颜色。它由主题默认控制,但可以单独覆盖——关键字段是 textCodeBlock.background,写进 workbench.colorCustomizations 即可生效。
常见错误是误用 editor.background 或 editor.wordHighlightBackground,这两个改的是编辑器主背景或变量高亮,对 Markdown 代码块完全无效。
- 必须在用户 settings.json 中配置,工作区 settings.json 不会覆盖此值
- 颜色值支持十六进制(如
"#2a2d34")、RGB("rgb(42, 45, 52)")、CSS 命名色("darkslategray") - 如果用了第三方 Markdown 主题(比如 GitHub Light),它的
textCodeBlock.background可能被硬编码,此时自定义值会被忽略——建议先切回 VS Code 默认主题验证
为什么改了没反应?检查这三点
最常遇到的情况是:配了 textCodeBlock.background,但预览时还是默认灰/白底。原因往往不是配置错,而是上下文不匹配:
- 你正在看的是 .ts/.py 等源码文件,不是 .md 文件——
textCodeBlock只作用于 Markdown 解析后的代码块,对普通编辑器无影响 - 当前打开的 .md 文件没启用预览(没按
Ctrl+Shift+V),或者预览窗口用的是独立渲染引擎(如 GitHub Preview 扩展),它不读 VS Code 的 colorCustomizations - 插件冲突:某些 Markdown 预览增强插件(如 Markdown Preview Enhanced)会接管样式,绕过 VS Code 原生主题系统
textCodeBlock.background 和 editor.codeBlockBackground 的区别
别混淆这两个字段:editor.codeBlockBackground 并不存在,VS Code 官方 color API 中没有这个 key;而 textCodeBlock.background 是真实可用的、且文档明确列出的 token。
如果你在某篇教程里看到 editor.codeBlockBackground,基本是作者手误或抄错了旧版非官方 patch。实际生效的只有 textCodeBlock.background,它属于 text 类域,和 textBlockQuote.background 同级。
顺便提一句:如果你想让代码块内语言高亮更协调,得另配 editor.tokenColorCustomizations 里的 comments、strings 等,它们和背景色是正交控制的。
示例:给代码块加一层柔和灰底
在 settings.json 里加这段就行,不用重启,保存后 Markdown 预览立刻更新:
{
"workbench.colorCustomizations": {
"textCodeBlock.background": "#2d2f36"
}
}
注意:这个颜色不会影响代码块内部的语法高亮色(比如函数名还是蓝色),只改变包裹它的那层底色。如果发现文字对比度太低,顺手加上 textCodeBlock.border 或调亮前景色更稳妥。
真正容易被忽略的是「作用范围」——它只管 Markdown 里的代码块,不碰任何其他地方。想改编辑器里所有代码的背景?那是 editor.background 的事,别混在一起调。


















