VSCode导出主题实际是提取settings.json中的workbench.colorCustomizations和editor.tokenColorCustomizations两段JSON;需手动打开用户设置JSON文件,精准复制这两个完整对象(含{}),保存为无注释的my-colors.json;全量复制settings.json会因路径、平台字段等导致失效。

VSCode 没有“导出主题”按钮,所谓“导出主题配置”,实际就是提取你手动改过的那两段 JSON:`workbench.colorCustomizations` 和 `editor.tokenColorCustomizations`,其他都导不了,也别白费劲去翻 `.vsix` 或 `themes/*.json`。
怎么从 settings.json 里准确抠出 colorCustomizations
直接打开 Preferences: Open User Settings (JSON),不要靠 UI 设置页复制——它不显示隐藏字段,也不保留原始结构。重点找这两个对象:
-
workbench.colorCustomizations控制侧边栏、状态栏、标签页等 UI 色; -
editor.tokenColorCustomizations控制语法高亮(如字符串、注释、关键字); - 如果它们被嵌在其他字段里(比如和
editor.fontFamily同级),只复制花括号包裹的完整对象,包括外层{}; - 新建一个纯文本文件,粘贴进去,保存为
my-colors.json—— 后缀必须是.json,且不能含任何//或/* */注释,否则 VSCode 加载失败。
为什么直接拷贝整个 settings.json 不行
因为里面混着大量机器相关路径和平台专属配置,一粘过去就失效:
-
python.defaultInterpreterPath、terminal.integrated.profiles.windows这类字段在新机器上根本不存在; -
files.exclude里带C:\Users\xxx或/home/xxx的绝对路径,会导致 VSCode 启动时静默忽略整个settings.json; - VSCode 1.86+ 引入了
profiles根对象,全量覆盖会删掉它,导致 Profile 识别失败; - 正确做法是:用全局搜索
C:、/Users/、/home/、:,整行删或加//注释掉,只留颜色相关和通用设置。
previewTheme 和 custom.css 怎么同步到新机器
如果你用了 markdown-preview-enhanced,它的深色预览不是靠 VSCode 主题控制的,得单独处理:
-
"markdown-preview-enhanced.previewTheme"字段值(如"atom-dark.css")要保留在settings.json里; -
custom.css文件本身得单独备份——它通常放在工作区根目录或~/.vscode/custom.css,不是 settings 的一部分; - 导出 PDF 时,MPE 默认不读
custom.css,得在导出命令里显式指定样式路径,或改用puppeteer渲染并注入 CSS; - 验证是否生效:改完后重启预览窗口(Ctrl+Shift+P →
Markdown Preview Enhanced: Kill Server再重开),别只看编辑器背景色。
真正能跨机器复现的,只有你亲手写进 settings.json 的那几行颜色覆盖,以及对应扩展名列表。主题本身是黑盒,别试图解包或硬拷文件——省下的时间够你重装三次插件了。











