vs code不支持全选禁用,需用@installed筛选后ctrl/cmd多选;禁用分workspace(安全可逆)和global(全局生效但可能被工作区覆盖);禁用后常需reload window才能彻底卸载。

在 Extensions 视图里用 @installed 筛选后再多选
VS Code 的扩展管理面板(Ctrl+Shift+X)本身不支持“全选”或“一键禁用全部”,但可以通过筛选 + 键盘多选实现高效批量操作。关键前提是先缩小列表范围,否则滚动查找 20+ 插件极易漏项。
- 必须输入
@installed前缀再加关键词,比如@installed python或@installed formatter,否则可能混入市场推荐项 - 筛选后,按住
Ctrl(Windows/Linux)或Cmd(macOS),逐个点击插件卡片右侧的齿轮图标 → 选择Disable (Workspace) - 别点右键菜单里的“Disable”——新版 UI 已移除该选项,右键只提供“Copy Extension ID”等辅助功能
- 如果想禁用全部已安装插件,就直接输
@installed,然后手动多选;没有@all或@everything这类通配符
禁用时选 Workspace 还是 Global?看作用域需求
点齿轮图标后弹出的两个选项不是并列关系,而是互斥作用域:选错一个,后续排查问题就会白忙活。
-
Disable (Workspace):只影响当前打开的文件夹,.vscode/settings.json里会追加"extensions.enabled": {"ext-id": false},安全、可逆、不影响其他项目 -
Disable (Global):写入用户级settings.json,所有项目都生效;但若工作区配置里又显式启用了同名插件,它会被覆盖——优先级是“工作区 > 用户” - 常见错误:禁用后重启 VS Code,插件又自动启用 → 实际只是 Workspace 级禁用,而用户级仍开着;反之,想全局停用却只点了 Workspace,其他项目照常加载
为什么点了 Disable 却没反应?检查三个隐藏条件
禁用操作看似简单,但 VS Code 的激活逻辑会让部分插件“表面禁用、后台运行”,尤其语言服务类扩展。
- 禁用
ms-python.python后,Python 语言服务器仍可能在后台跑着 → 必须手动执行Developer: Reload Window才真正卸载 - 主题类插件(如
dracula-theme.theme-dracula)禁用后界面不变 → 同样需要重载窗口,UI 贡献点不会热更新 - 某些插件注册了
onStartupFinished激活事件,即使禁用也会完成初始化 → 查看Developer: Show Running Extensions,Start-up 列为true的要重点盯 - 别信“灰色图标=已停用”——图标变灰只代表状态标记,不代表进程退出或内存释放
settings.json 里写 extensions.enabled 更稳定,但 ID 必须精确
图形界面点来点去容易手滑,直接改配置文件反而更可控,尤其适合团队统一禁用策略或 CI/CD 预设环境。
- 在
settings.json中添加字段:"extensions.enabled": {"esbenp.prettier-vscode": false, "dbaeumer.vscode-eslint": false} - ID 必须和 Marketplace URL 最后一段完全一致,比如
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode→ ID 是esbenp.prettier-vscode,写成prettier或prettier-vscode都静默失效 - 这个配置对未安装的插件无影响,也不会抑制推荐;只作用于已安装且 ID 匹配的插件
- 注意:该字段和
extensions.disabledExtensions不同,后者是旧式数组写法,已逐步被弃用,且容错更低
Developer: Show Running Extensions 才发现某个 ms-python.python 还挂着 Activation Events: *,CPU 占用 15% —— 这时候再补 reload 就晚了。











