VS Code 跨设备同步推荐手动 Git 管理:导出 settings.json、keybindings.json 和 extensions.txt,用符号链接指向对应路径,再通过脚本批量安装扩展并验证配置生效,以规避官方 Settings Sync 的网络与隐私问题。

VS Code 设置无法自动跨设备同步,官方 Settings Sync 功能虽存在,但依赖 GitHub/GitLab 账户且在国内常因网络问题失败;更可靠的方式是手动管理 settings.json 和扩展列表,配合 Git 同步。
导出当前设置和已安装扩展
先确保本地配置可复现:VS Code 不会自动保存所有设置到 settings.json(比如部分 UI 布局、快捷键修改需手动触发),扩展也未必全部列在 extensions.json 中。
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Preferences: Open Settings (JSON),检查settings.json是否已包含你手动改过的关键项(如"editor.tabSize"、"files.autoSave") - 导出已安装扩展:终端中执行
code --list-extensions > extensions.txt,生成纯文本清单 - 若使用了自定义快捷键,运行
Preferences: Open Keyboard Shortcuts (JSON),将内容另存为keybindings.json
用 Git 管理 settings.json 和 extensions.txt
把配置文件当作代码来版本控制,比依赖云端同步更可控,也避免登录第三方账户带来的权限或隐私顾虑。
- 新建一个私有仓库(如
vscode-config),把settings.json、keybindings.json、extensions.txt提交进去 - 不同设备上 clone 该仓库后,用符号链接替代默认路径(Windows 用
mklink,macOS/Linux 用ln -s)指向你的配置文件 - 注意路径差异:
settings.json默认位置是:
— Windows:%APPDATA%\Code\User\settings.json
— macOS:$HOME/Library/Application Support/Code/User/settings.json
— Linux:$HOME/.config/Code/User/settings.json
在新设备上一键恢复环境
仅靠复制 settings.json 不足以还原完整体验——扩展没装、主题未启用、插件配置丢失都会导致行为不一致。
- 先执行
cat extensions.txt | xargs -L 1 code --install-extension(macOS/Linux),Windows 可用 PowerShell:Get-Content extensions.txt | ForEach-Object { code --install-extension $_ } - 装完扩展后重启 VS Code,再确认
settings.json已被符号链接正确加载(打开设置界面右下角查看“Settings are synced from…”提示是否消失) - 某些扩展(如
ms-python.python、esbenp.prettier-vscode)有独立配置,需额外检查其对应 section 是否已在settings.json中写入
真正麻烦的不是同步动作本身,而是那些“看不见的依赖”:比如某个项目用了 editor.codeActionsOnSave,但实际生效依赖 esbenp.prettier-vscode 已启用且配置匹配;这类隐式耦合不会出现在 settings.json 里,只能靠经验补全。










