必须手动提取 settings.json 中的 workbench.colorcustomizations 和 editor.tokencolorcustomizations 两个完整 json 对象,保存为无注释的纯 json 文件(如 my-colors.json)供对方合并到其 settings.json 根对象内;若要一键安装并出现在颜色主题列表中,则需打包成含 package.json 和 themes/*.json 的 .vsix 扩展,且须注明所依赖的基础主题。

不能直接“导出主题”,只能手动提取 workbench.colorCustomizations 和 editor.tokenColorCustomizations 两段配置,保存为纯 JSON 文件交给对方合并进自己的 settings.json。
怎么从 settings.json 里精准提取颜色配置
VSCode 不提供「导出当前配色」功能,所有自定义颜色都藏在用户设置文件里。关键不是复制整个文件,而是定位并只取那两个对象:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并选择Preferences: Open User Settings (JSON) - 在打开的文件中搜索
"workbench.colorCustomizations"—— 找到它完整的{ ... }块,包括开头和结尾的大括号 - 同样搜索
"editor.tokenColorCustomizations",也完整复制其花括号包裹的内容(如果不存在,就跳过) - 新建一个纯文本文件,把这两段粘贴进去,确保它们是同级键值对,例如:
{ "workbench.colorCustomizations": { "editor.background": "#1e1e1e" }, "editor.tokenColorCustomizations": { "comments": "#6c789d" } } - 保存为
my-colors.json(后缀必须是.json,且文件内不能有任何//或/* */注释)
为什么对方合并后可能不生效
常见失败不是路径或权限问题,而是 JSON 结构或语义错误:
-
Unexpected token / in JSON:复制时带进了注释(VSCode 的settings.json支持注释,但标准 JSON 不支持) -
Invalid configuration:多了一个逗号、少了一个引号,或把你的配置直接追加到了文件末尾,而不是插入到根对象内部 - 对方已有
"workbench.colorCustomizations":不能简单覆盖,要手动合并——把你里面的键值对逐个填进对方已有的那个对象里,同名键以你给的为准 - 没生效但无报错:确认对方用的是「用户设置」而非「工作区设置」;
workbench.colorCustomizations只作用于当前启用的主题,不会覆盖主题硬编码的部分(比如侧边栏图标颜色)
想让好友一键安装?得打包成 .vsix 主题扩展
如果希望对方双击就能装、还能在「颜色主题」列表里直接选,就必须做成正式主题扩展,不是丢一个 JSON 文件那么简单:
- 需要创建完整项目结构:至少包含
package.json和themes/xxx-color-theme.json -
package.json中必须正确定义"contributes": { "themes": [...] }字段,否则 VSCode 根本不会把它识别为主题 - 用命令面板执行
Extensions: Package Extension打包成.vsix文件 - 对方通过
Extensions: Install from VSIX命令安装(不能双击拖入,VSCode 默认禁止未签名扩展) - 安装后还需手动执行
Preferences: Color Theme启用,不会自动激活
真正容易被忽略的一点:你改的 workbench.colorCustomizations 是“覆盖层”,它依赖对方已启用的主题存在;如果对方根本没装 One Dark Pro,而你导出的配置是基于它的变量名写的,那部分颜色就完全不会起效——分享前最好注明“需配合 XXX 主题使用”。











