editor.tokenColorCustomizations专管代码语法高亮,workbench.colorCustomizations专管界面颜色,二者隔离不混用;改函数、字符串、注释等需在settings.json中配置对应scope,如"string.quoted.double.js",并用Developer: Inspect Editor Tokens and Scopes验证真实scope,避免拼写错误或优先级覆盖。

editor.tokenColorCustomizations 是改代码语法色的唯一正路,workbench.colorCustomizations 是调界面颜色的唯一入口——二者不能混用,也不需要重启,改完保存就生效。
怎么改函数、字符串、注释这些代码颜色?
别去主题市场瞎装插件,直接在 settings.json 里配 editor.tokenColorCustomizations:
- 全局改所有语言的字符串:加
"strings": "#d6994b" - 只改 JavaScript 的关键字:用
"[javascript]": { "keywords": "#cc7a8b" } - 想精准控制双引号字符串?必须用
textMateRules+ 实际 scope,比如"scope": "string.quoted.double.js" - 改完没反应?先按
Ctrl+Shift+P→Developer: Inspect Editor Tokens and Scopes点一下目标代码,看真实 scope 名,别靠猜 - 常见拼错:
comments(不是 comment)、functions(不是 function)、types(不是 type)
侧边栏、状态栏、标签页这些 UI 颜色怎么调?
workbench.colorCustomizations 专管这部分,和语法色完全隔离:
- 侧边栏背景:
"sideBar.background": "#1e2127" - 当前活动标签页底边线:
"tab.activeBorder": "#007acc"(注意不是tab.activeBorderTop,后者不通用) - 状态栏背景:
"statusBar.background": "#252525",但若没打开文件夹,statusBar.noFolderBackground会优先覆盖它 - 括号匹配高亮背景:
"editorBracketMatch.background": "#2c3e50",前提是"editor.bracketPairColorization.enabled": true - 大小写敏感:
activityBar.foreground有效,activitybar.foreground直接失效
为什么改了 editor.background 却没变?
这不是 bug,是配置被覆盖或位置错了:
- 检查是否在
.vscode/settings.json(工作区级)里写了同名项——它会屏蔽用户级设置 - 某些主题(如 GitHub Theme)会强制接管
editor.tokenColorCustomizations,连带影响背景渲染逻辑 -
workbench.colorCustomizations必须是顶层对象,不能嵌在别的字段里;已有该字段就往里面加键值,别重复声明整个对象 - 终端背景不归它管:
terminal.integrated.background是独立配置项,漏配就会出现“编辑器黑了、终端还是白的”割裂感 - 改完背景后字看不清?大概率是没同步调
editor.foreground或 token 颜色,深背景必须配浅前景
string 覆盖所有语言,结果 Python 里 f-string 没响应),或者被某个扩展悄悄注入了更高优先级的 colorCustomizations。调试时打开开发者工具(Ctrl+Shift+I),看控制台有没有 warning,比反复试错快得多。


















