怎么在不丢失配置的情况下迁移 VSCode 到新电脑或系统?

文章导读
VSCode 迁移配置首选内置 Settings Sync 功能,适合联网环境且需多端一致的场景;若需离线迁移或重装系统,则需手动备份 settings.json、keybindings.json 并通过命令行导出扩展列表。注意机器级设置(machine settings)和加密凭据无法直接同步,需单独处理。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

VSCode 迁移配置首选内置 Settings Sync 功能,适合联网环境且需多端一致的场景;若需离线迁移或重装系统,则需手动备份 settings.json、keybindings.json 并通过命令行导出扩展列表。注意机器级设置(machine settings)和加密凭据无法直接同步,需单独处理。

先说结论:完整迁移需区分在线同步与离线备份两种路径,核心是分离用户设置与扩展实体文件。

  • 适合:换机重装、多设备协作、内网离线环境
  • 先准备:GitHub/Microsoft 账户或手动备份配置文件
  • 验收:检查状态栏云图标、扩展数量及快捷键生效情况

命令速用版

离线迁移扩展依赖命令行导出 ID 列表,避免使用显示名导致安装失败。

code `--list-extensions` > extensions.txt
cat extensions.txt | xargs -L 1 code `--install-extension`

Windows PowerShell 用户请使用 Get-Content extensions.txt | ForEach-Object { code `--install-extension` $_ }。

为什么会这样

VSCode 配置分散在用户级、工作区级和机器级多个层级,单纯复制文件夹无法还原加密状态。

怎么在不丢失配置的情况下迁移 VSCode 到新电脑或系统?

用户设置存储在 settings.json,但机器级设置存储在 securestorage 数据库中,扩展目录含编译产物及私有状态。SSH 连接配置实际由 Remote-SSH 扩展读取系统 ~/.ssh/config 并叠加其设置,这解释了为何单纯复制 settings.json 无法还原完整行为。

分步处理

方案一:在线同步(推荐)

使用内置 Settings Sync 功能,基于 GitHub 或 Microsoft 账户端到端加密存储。

  1. 打开命令面板,输入 Preferences: Turn on Settings Sync。
  2. 选择账户登录,勾选 Settings、Extensions、Keybindings、Snippets。
  3. 确认状态栏出现蓝色云图标且悬停显示 Sync: On。
  4. 新设备登录同一账户,选择 Download and merge。

方案二:离线手动迁移

适用于无网络或需完全控制配置文件的场景。

怎么在不丢失配置的情况下迁移 VSCode 到新电脑或系统?
  1. 备份配置文件:复制 settings.json、keybindings.json 和 snippets/ 目录。
  2. 导出扩展列表:运行 code `--list-extensions` > extensions.txt。
  3. 新设备恢复:覆盖配置文件至 User 目录,命令行批量安装扩展。

怎么验证是否生效

同步完成后需人工确认关键配置项是否落地,避免静默失败。

  • 在线同步:运行 Sync: Show Summary 查看同步了哪些扩展和设置项。
  • 扩展安装:打开 Extensions 视图,搜@installed 确认数量是否一致。
  • 快捷键:尝试触发自定义键位,确认无冲突且生效。

常见坑

  • 平台路径差异:Windows 的 C:\ 与 macOS 的~/Library/路径在跨系统同步时会被静默过滤。
  • 原生模块兼容:含 native 代码的插件要求目标机 Node.js 版本匹配 VSCode 内置版本,否则无法加载。
  • 代码片段遗漏:snippets/ 文件夹不在 Settings Sync 默认同步范围,需手动备份。
  • SSH 配置丢失:Remote-SSH 的 host keys 和 config 映射需单独迁移系统 ~/.ssh 目录。

常见问题

为什么装了插件另一台电脑没同步过来?

Settings Sync 不是实时双向监听,需手动触发 Sync Now 或重启 VSCode 后等待增量同步。

扩展安装卡住或静默失败怎么办?

网络不通时会卡在等待状态,建议加 timeout 控制单个安装时长,或关闭 extensions.autoCheckUpdates。

快捷键配置能靠插件列表同步吗?

不能,插件列表导出命令不涉及快捷键,唯一可靠来源是 keybindings.json 文件。

参考来源

  • VS Code 配置、插件和设置如何完整迁移到新电脑?
  • VSCode 如何离线迁移所有的插件和个人快捷键配置到另一台新电脑
  • VSCode 如何在多台电脑间迁移配置_VSCode 多台电脑间迁移配置技巧
  • 如何导出 VSCode 配置?重装系统迁移方案【方案】
  • VSCode 怎么同步插件和配置到新电脑 VSCode 利用 GitHub 账号云端备份极速恢复技巧
  • 怎么将 VSCode 的设置同步到其他电脑_VSCode Settings Sync 云同步配置方法
  • VSCode 插件搬家指南:如何一键迁移所有插件到新电脑 (Windows/Mac/Linux 通用)
  • 内网情况下的 VScode 拓展插件迁移
  • 【小技巧】同步 VSCode 设置及扩展插件,换机不用愁!