直接复制系统级 settings.json 是最有效导出方式,路径依系统而定:Windows 为 %APPDATA%\Code\User\settings.json,macOS 为 ~/Library/Application Support/Code/User/settings.json,Linux 为 ~/.config/Code/User/settings.json;需清理含绝对路径、平台专属及插件强依赖字段,并同步迁移 html.customData 指向的 html-data.json、extensions.txt、keybindings.json 和 snippets/ 目录。

直接复制 settings.json 文件是最有效、最可控的导出方式,但必须从系统级用户目录中提取原始文件,而不是通过 UI 复制快照;否则会丢失禁用项、注释和格式细节,迁移后大概率静默失效。
怎么找到真实的 settings.json 路径
它不在 VSCode 安装目录里,硬翻 Program Files 或 Visual Studio Code.app 会扑空。真实路径由操作系统决定:
- Windows:
%APPDATA%\Code\User\settings.json(文件资源管理器地址栏粘贴即可直达) - macOS:
$HOME/Library/Application Support/Code/User/settings.json(终端执行open ~/Library/Application\ Support/Code/User快速打开) - Linux:
$HOME/.config/Code/User/settings.json
别用「设置 → 打开设置 (JSON)」后全选复制——那是 UI 渲染后的简化快照,"editor.minimap.enabled": false 这类显式禁用项根本不会显示,且注释和缩进容易错乱。
导出前必须清理的三类危险字段
原封不动拷贝到新机器,VSCode 启动时不会报错,但会静默跳过整行配置,导致主题、字体、补全行为全部回退默认值:
-
绝对路径类:
"python.defaultInterpreterPath"、"files.exclude"、"search.exclude"中含C:\Users\、/Users/、/home/等 -
平台专属类:
"terminal.integrated.profiles.windows"、"terminal.integrated.fontFamily"(macOS/Linux 下可能阻断加载) -
插件强依赖类:
"prettier.bracketSpacing"、"todo-tree.tree.showScanModeButton"(新机器没装插件时整行被忽略)
全局搜索 C:、/Users/、/home/、:,整行删掉或加 // 注释即可。保留 "editor.fontSize"、"workbench.colorTheme" 这类通用项。
别漏掉 html.customData 和 emmet.includeLanguages
如果你为自定义组件(如 )或扩展 HTML type 值写过 html-data.json,那才是你真正的“HTML 补全规则”。它不藏在 settings.json 里,而是由 html.customData 字段指向一个外部 JSON 文件:
-
html.customData必须是数组,每个元素是路径,如["./html-data.json"]或绝对路径 - 相对路径需随
settings.json一起迁移;绝对路径(如/Users/me/config/html-data.json)无法跨机器复用 -
emmet.includeLanguages是 Vue / JSX 模板字符串里补全生效的关键,比如"vue-html": "html",漏掉就看不到ul>li*3提示
导出时,除了 settings.json,还得把 html-data.json 文件本身一并复制出来——这才是可独立复用的规则载体。
扩展、快捷键、代码片段不能靠 settings.json 覆盖
settings.json 只管设置,不管其他三样东西:
-
扩展列表:终端运行
code --list-extensions > extensions.txt,生成 ID 列表(如ms-python.python) -
快捷键:备份同目录下的
keybindings.json(仅当你改过快捷键时存在) -
代码片段:整个
snippets/目录必须完整拷出(不是单个文件),里面是按语言命名的 JSON 文件
导入时,这些文件都得手动覆盖到目标机器的对应 User/ 目录下;插件还要用命令行逐个安装:cat extensions.txt | xargs -L 1 code --install-extension(macOS/Linux)或 PowerShell 的 Get-Content extensions.txt | ForEach-Object { code --install-extension $_ }(Windows)。
Profile 结构、Remote 配置、BOM 头、残留 Code Helper 进程——这些细节不处理,哪怕文件全对,也大概率白忙一场。











