最可靠方式是手动导出settings.json、keybindings.json、snippets/目录及code --list-extensions列表;Settings Sync存在禁用插件丢失、代码片段不同步等问题,不适合环境迁移。

VSCode 本地配置不能靠“导出设置”按钮一键打包,必须手动抓取核心文件 + 扩展列表,否则重装后大概率丢 keybindings、snippets 或插件。
settings.json 和 keybindings.json 怎么找?
这两个文件不在 VSCode UI 的“设置”界面里生成,而是直接存在用户目录下。打开命令面板(Ctrl+Shift+P),运行 Preferences: Open Settings (JSON) 就能编辑 settings.json;但 keybindings.json 默认不生成——只有你改过快捷键,它才会出现在对应路径中。
真实存放路径(别只信 UI):
- Windows:
%APPDATA%\Code\User\ - macOS:
$HOME/Library/Application Support/Code/User/ - Linux:
$HOME/.config/Code/User/
进去后你会看到 settings.json、keybindings.json(如果存在)、snippets/ 文件夹——这三个必须一起备份。
扩展列表怎么导出?不要截图或手抄
用命令行导出最稳,避免漏装或拼错名字:
- macOS / Linux:
code --list-extensions > extensions.txt - Windows:
code --list-extensions > extensions.txt(PowerShell 或 CMD 均可)
注意:extensions.txt 是纯文本,每行一个扩展 ID,例如:ms-python.python、shd101wyy.markdown-preview-enhanced。别用图形界面“导出配置文件”功能生成的 .code-profile,它在离线恢复时兼容性差,且不保证包含 snippets。
snippets 文件夹为什么不能忽略?
snippets/ 是个目录,不是单个文件。里面存着你所有自定义代码片段(比如 log 按 Tab 展开成 console.log() 这类逻辑)。VSCode 不会把它塞进 settings.json,也不会出现在任何“导出设置”菜单里。
操作要点:
- 必须整个
snippets/文件夹拷出来(含子文件,如javascript.json、python.code-snippets) - 恢复时直接覆盖到新环境的
User/目录下,重启 VSCode 即生效 - 别指望 Settings Sync 自动同步它——实测微软账号同步经常跳过这个目录
导出后怎么验证没漏?
重装 VSCode 后,光把文件丢进去还不够。得确认三件事是否对齐:
- 打开
Extensions视图,输入@installed,看数量是否和extensions.txt行数一致 - 按
Ctrl+K Ctrl+S打开快捷键面板,搜一个你改过的快捷键(比如editor.action.formatDocument),确认绑定没回退 - 新建一个
.js文件,输log再按 Tab,看是否触发你写的 snippet
最容易被跳过的其实是 snippets/ 和 keybindings.json——它们不显眼,也不参与 Settings Sync 的默认同步项,但一旦丢了,日常编码效率直接打七折。











