VSCode 用户配置完整迁移需复制整个 User 目录,含 settings.json、keybindings.json、snippets/ 和 extensions/;路径因系统而异,恢复前须修正 settings.json 中的本地绝对路径并确保目标结构存在。

settings.json、keybindings.json、snippets/ 和 extensions/ 这些核心配置全在 VSCode 的 **User 数据目录**里,直接复制整个目录就能完整迁移——比 Settings Sync 更彻底,也比导出扩展列表更可靠。
找到你的 VSCode User 目录(关键路径)
VSCode 不会把配置存在安装目录,而是写进用户专属数据区。路径因系统而异,但结构统一:User/ 下就是你要的所有东西:
- Windows:
%APPDATA%\Code\User\(即C:\Users\用户名\AppData\Roaming\Code\User\) -
macOS:
~/Library/Application Support/Code/User/ - Linux:
~/.config/Code/User/
这个目录里默认包含:settings.json、keybindings.json、snippets/ 文件夹,以及(重要)extensions/ 子目录——它存着已安装扩展的完整本地副本,含二进制文件和缓存,不是仅靠 code --list-extensions 就能还原的。
备份时别只导扩展列表,要连 extensions/ 一起打包
很多人误以为导出 extensions.txt 就够了,结果恢复后 Prettier 报错、ESLint 不生效——因为某些扩展(如 ms-python.python、ms-vscode.cpptools)依赖本地编译的工具链,仅重装 ID 无法复原功能。
- 关闭所有 VSCode 实例(否则 Windows/macOS 可能提示文件被占用)
- 进入上述
User/目录,选中整个文件夹右键压缩(如vscode-user-202601.zip) - 若磁盘空间紧张,可删掉
extensions/单独备份,再用code --list-extensions > extensions.txt补充清单,但首次迁移建议全量
恢复时覆盖前先检查路径一致性
直接解压覆盖看似简单,但容易踩两个坑:
-
目标路径不存在? 先启动一次 VSCode 再退出,它会自动生成标准
User/结构,避免你手动建错层级 -
路径里有绝对引用? 打开备份的
settings.json搜"python.defaultInterpreter"或"terminal.integrated.env.,这类字段常含C:\Python39\或/Users/xxx/.nvm/,必须手动改成本地路径,否则终端打不开、调试器启动失败 - macOS 上若用了 iCloud 同步
Application Support,解压后可能触发冲突,建议先暂停 iCloud 同步再操作
Settings Sync 是辅助,不是替代
官方的 Turn on Settings Sync 功能确实方便,但它同步的是“状态”而非“快照”:不传 extensions/ 文件夹内容、不备份项目级 .vscode/、也不管你 snippets/ 里自定义的 JSON Schema 引用是否有效。
- 适合日常多设备轻量同步(比如家里笔记本和公司台式机)
- 但重装系统、换电脑、或需要回滚到某天的稳定环境时,
User/压缩包才是唯一可信源 - 开启 Sync 后,它会自动覆盖你本地修改过的
settings.json,所以恢复完手动备份的配置后,先关掉 Sync,确认一切正常再重新启用
最稳妥的迁移顺序是:先关 VSCode → 覆盖 User/ 目录 → 启动 VSCode 检查路径类设置 → 修复报错 → 再决定是否打开 Settings Sync。那些藏在 settings.json 里的本地路径,永远是你迁移时最先该 grep 的东西。










