VSCode没有“插件辅助文件”,settings.json、keybindings.json和snippets目录是决定插件行为的用户级配置,code --list-extensions仅导出插件ID列表,不含设置、路径、禁用状态或版本信息;Python插件需settings.json中配置python.defaultInterpreterPath才生效,漏掉keybindings.json则自定义快捷键丢失,snippets目录必须整体复制,且1.86+版Profile结构要求settings.json只能局部覆盖对应Profile内容并重启生效。

VSCode 没有“插件辅助文件”这种东西——所谓“辅助文件”,其实是 settings.json、keybindings.json、snippets 目录这些用户级配置,它们和插件本身无关,但决定插件怎么用。
为什么导出插件列表不能代替导出配置
code --list-extensions 只输出插件 ID(如 ms-python.python),它不包含任何设置。哪怕你装了 50 个插件,settings.json 里没配 python.defaultInterpreterPath,Python 插件照样报错;没导出 keybindings.json,你自定义的 Ctrl+Shift+B 构建命令就没了。
-
code --list-extensions是纯 ID 列表,不含状态、路径、版本、禁用标记 - 插件自身配置(比如 ESLint 的
eslint.enable)全存在settings.json里,不是插件自带的“辅助文件” - snippets 目录下每个
.json文件对应一组代码片段,漏掉一个,log快捷生成就失效
settings.json 里哪些字段必须手动清理
直接复制 settings.json 到新机器,常因硬编码路径导致插件崩溃或功能静默失效。这类字段不会报错,只会“不工作”。
-
python.defaultInterpreterPath:Windows 路径写死为"C:\Python39\python.exe",到 macOS 就完全无效 -
files.exclude和search.exclude:含"node_modules/**"没问题,但带"D:\projects\foo\dist/**"这种绝对路径会拖慢搜索甚至卡死 -
remote.SSH.configFile、terminal.integrated.profiles.windows:平台强相关,跨系统迁移时必须删或注释掉 - 所有以
editor.开头的字体/缩进设置通常安全,但editor.fontFamily若写成"Fira Code Retina"(macOS 字体),Windows 上可能回退到默认字体且无提示
keybindings.json 和 snippets 怎么复制才不丢
这两项不参与 Settings Sync 默认同步,也不在 code --list-extensions 范围内,手动漏掉就真没了。
-
keybindings.json路径固定:
— Windows:%APPDATA%CodeUserkeybindings.json
— macOS:$HOME/Library/Application Support/Code/User/keybindings.json
— Linux:$HOME/.config/Code/User/keybindings.json - snippets 目录必须整个复制,不能只拷单个文件:
— 路径同上,子目录snippets/下所有.json文件都要保留
— 文件名即语言标识符(如javascript.json、python.json),改名会导致不生效 - 改完
keybindings.json不用重启,VSCode 会热重载;但改snippets后需重开编辑器或触发一次语言模式切换(如切到 Python 再切回来)
Profile 结构让 settings.json 覆盖变危险
VSCode 1.86+ 引入 Profile 后,settings.json 格式变成嵌套结构。直接全量覆盖会清空 profiles 根节点,导致 Profile 功能失效——你选中的 “my-dev” 配置档突然消失,连带里面所有插件启用状态、主题、窗口布局全丢。
- 正确做法:先在目标机打开
Settings → Profiles → my-dev → Reset Profile to Default - 再打开源机
settings.json,找到"profiles": { "my-dev": { ... } }中的{ ... }部分,只复制这部分内容 - 粘贴进目标机
settings.json对应 Profile 的对象体内,不要动profiles外层结构 - 保存后必须 重启 VSCode,
Developer: Reload Window不触发 Profile 重解析
最麻烦的永远不是“导出”动作本身,而是 settings.json 里那些看似普通、实则绑定本地环境的字段——它们不会报错,只会让你花半小时排查“为什么 Python 插件突然不识别 virtualenv”。


















