peacock插件仅修改窗口级ui颜色,不涉及语法高亮;其颜色配置绑定工作区.settings.json,优先级高于用户设置,且各窗口独立存档、不跨会话持久化。

Peacock 插件只管窗口色,不管语法高亮
Peacock 的作用范围非常明确:它只修改 VS Code 窗口级 UI 元素的颜色,比如 titleBar.background、activityBar.background、statusBar.background。它**完全不触碰**代码编辑器内的语法颜色(如字符串、函数名)、括号匹配色或光标样式——那些归 editor.tokenColorCustomizations 和 workbench.colorCustomizations 管。
常见错误是装了 Peacock 后想改 editorBracketMatch.background,结果发现命令面板里搜不到相关选项。这不是插件坏了,而是功能边界问题。
- Peacock 修改的是“你正在看哪个项目”的视觉提示,不是“这段代码是什么类型”的语义着色
- 想调括号高亮?得去
settings.json里写"editorBracketMatch.background": "#ff0000" - 想让注释变灰?要配
editor.tokenColorCustomizations,不是 Peacock 的 preset 列表
预设色(dev/test/prod)绑定的是工作区,不是文件夹路径
执行 Peacock: Set Color From Preset 时,颜色是写进当前工作区的 .vscode/settings.json 里的,而不是记在某个绝对路径上。这意味着:
- 同一份代码,用不同方式打开(比如直接开文件夹 vs 开 .code-workspace 文件),可能触发不同的工作区设置
- 如果你把项目复制到另一台机器,只要
.vscode/settings.json里有"peacock.color",颜色就自动带上 - 但如果你删掉了
.vscode文件夹,或者用“Open Folder”方式打开却没生成该目录,预设色就失效了
别指望 Peacock 记住“/Users/me/project-a 就该是蓝色”——它只认当前工作区配置,不认磁盘路径。
颜色冲突时,工作区设置优先级高于用户设置
如果你在用户级 settings.json 里写了 "peacock.color": "#333",又在某个项目的工作区 .vscode/settings.json 里写了 "peacock.color": "#007acc",那么打开这个项目时,显示的一定是 #007acc。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
这个优先级规则也适用于其他颜色配置,比如 workbench.colorCustomizations。容易踩的坑是:
- 全局设置了深色状态栏,但某个项目的工作区配置覆盖了它,结果那个窗口的状态栏突然变浅——不是主题出错,是工作区配置生效了
- 团队共用一份
.vscode/settings.json,里面固定了peacock.color,但你本地用户设置里也有同名键,会被静默忽略 - 重置命令
Peacock: Reset Color只清工作区层的peacock.color,不会动用户设置里的值
Peacock 颜色不继承、不联动,每个窗口独立存档
VS Code 每个窗口(哪怕开的是同一个文件夹)在 Peacock 里都被视为独立实体。你给窗口 A 设了红色,再用“Duplicate Window”新开一个窗口 B,B 默认还是灰色,不会自动同步 A 的颜色。
这也意味着:
- 没有“全局开关”一键改所有窗口颜色;每个窗口都要单独操作
- 关闭再重开一个已有工作区,只要
.vscode/settings.json没被删,颜色就还在 - 如果用了多根工作区(multi-root workspace),Peacock 只响应最外层工作区的设置,子文件夹的独立配置不会被识别
真正容易被忽略的是:Peacock 的颜色状态完全依赖 VS Code 的工作区生命周期管理。它不写系统 registry,不存本地数据库,也不跨 session 持久化——只靠 JSON 文件和 VS Code 自身的配置加载机制撑着。一旦配置文件权限异常、被 Git 忽略、或被其他插件误删,颜色就没了,而且毫无预警。










