直接备份 settings.json 但必须清理三类危险字段:含绝对路径的字段(如 python.defaultInterpreterPath)、平台专属字段(如 terminal.integrated.profiles.windows)、插件强依赖字段(如 vscode-background.customImages),否则跨平台或重装后配置静默失效。

直接备份 settings.json 但必须清理三类危险字段
VSCode 界面美化配置(主题、字体、背景图、颜色覆盖等)几乎全存在 settings.json 里,所以第一步就是拿到它——但别用「设置 → 打开设置 (JSON)」后全选复制,那会丢掉注释、缩进和显式设为 false 的项(比如 "editor.minimap.enabled": false 在 UI 里根本不显示,却是有效禁用)。真实路径是:
- Windows:
%APPDATA%\Code\User\settings.json - macOS:
$HOME/Library/Application Support/Code/User/settings.json - Linux:
$HOME/.config/Code/User/settings.json
拿到后立刻做三件事:
- 搜索并删除或注释所有含绝对路径的字段,比如
"python.defaultInterpreterPath"、"files.exclude"里带C:\Users\或/home/的条目 - 删掉平台专属字段,如
"terminal.integrated.profiles.windows"、"terminal.integrated.fontFamily"(macOS/Linux 下可能阻断加载) - 删掉插件强依赖字段,比如
"vscode-background.customImages"、"todo-tree.tree.showScanModeButton"——新机器没装对应插件时,VSCode 直接跳过整行,导致颜色/背景静默失效
主题和背景图不能“导出为文件”,只能靠扩展 ID + 配置复现
VSCode 没有独立的 .tmTheme 或背景图导出机制。你看到的 "workbench.colorTheme": "One Dark Pro" 只是个引用名,不是配色数据本身;vscode-background 的图片路径也是硬编码在 settings.json 里的字符串。
所以迁移前必须记下两样东西:
- 所有已安装的主题/美化类插件 ID,运行
code --list-extensions保存到extensions.txt,重点包括:zhuangtongfa.material-theme、be5invis.vscode-custom-css、shyykoserhiy.vscode-wallpaper、axetroy.vscode-background等 -
settings.json中真正可移植的美化配置块:workbench.colorCustomizations(UI 色)、editor.tokenColorCustomizations(语法色)、editor.fontFamily、editor.fontSize、workbench.iconTheme(注意:值必须是字符串如"material-icon-theme",不能写"./icons.json"这种本地路径)
这些内容复制过去就能立即生效,无需重启。
别碰 User/workspaceStorage 和 extensions/ 二进制目录
有人想直接拷整个 User/ 目录,甚至把 ~/.vscode/extensions/ 也打包带走——这在跨平台或 VS Code 大版本升级时大概率翻车。
-
workspaceStorage存的是临时状态(比如上次打开哪个折叠节点),不是配置,备份它没意义,还可能引发冲突 -
extensions/里是编译好的插件二进制,Windows 上装的 Python 插件无法直接扔到 macOS 用;而且新版插件(如ms-python.python)已拆分为多个 ID,旧列表会漏装 - 正确做法:只导
extensions.txt,新机器上跑cat extensions.txt | xargs -I {} code --install-extension {}(macOS/Linux)或逐行执行code --install-extension(Windows)
导入后第一件事:检查 workbench.colorCustomizations 是否被主题覆盖
即使你完整保留了 workbench.colorCustomizations,如果新机器没装同名主题,或者装的是浅色主题但你的自定义色是深色系(比如 "sideBar.background": "#1e1e1e"),UI 元素可能错位、文字不可读。
验证方法很简单:
- 打开命令面板,输入
Developer: Inspect Editor Tokens and Scopes,点任意代码区域,看右上角弹出的 color preview 是否匹配你设的值 - 如果没生效,打开
SettingsUI,搜color theme,确认当前主题已启用且无拼写错误 - 若用了
vscode-background,检查settings.json中的图片路径是否仍可访问(本地路径需重写,HTTPS 链接优先)
最常被忽略的是:你自定义的颜色块依赖某个未安装的主题作为基础,而这个依赖关系不会报错,只会静默降级——得手动补装主题再试。











