直接用命令行批量禁用扩展比点鼠标快且不漏,因vscode插件激活后常驻内存,界面“disable”仅阻止新加载,旧进程仍运行;需用code --list-extensions查id,再用code --uninstall-extension逐个卸载或通过grep+xargs批量清理非官方插件,并彻底退出vscode以终止残留进程。

直接用命令行批量禁用扩展,比点鼠标快且不漏
VSCode 扩展一旦激活就常驻内存,光在界面点“Disable”只阻止新加载,旧进程照跑。批量操作必须绕过 UI,用终端命令一次性清理干净。
-
code --list-extensions查出当前所有已安装扩展 ID(如esbenp.prettier-vscode、gitlens.gitlens) - 挑出高频嫌疑项,用
code --uninstall-extension <id></id>逐个卸载,例如:code --uninstall-extension ms-python.python - 想清空全部非官方插件?执行:
code --list-extensions | grep -v "ms-" | xargs -I {} code --uninstall-extension {}(macOS/Linux;Windows 可用 PowerShell 替代) - 卸载后必须完全关闭所有 VSCode 窗口——不是重载,是彻底退出,否则残留进程仍在后台吃 CPU
禁用后插件“复活”,其实是 settings.json 在偷偷启用
很多人禁用完重启,过两天发现插件又自动启了。根源不在扩展面板,而在配置文件里藏着的开关逻辑。
- 检查项目根目录下的
.vscode/settings.json:删掉类似"prettier.requireConfig"、"eslint.enable"这类字段,它们会强制触发插件加载 - 检查用户级
settings.json(Ctrl+, → Open Settings (JSON)):移除"emeraldwalk.runonsave"或"auto-rename-tag.activateOnLanguage"这类绑定语言或保存事件的配置 - 检查
.vscode/extensions.json:如果存在"recommendations"列表,删掉或清空它,否则每次打开工作区都会弹窗提示“安装推荐插件”
Extension Host CPU > 60%?先看是不是多个实例在并行疯跑
多窗口、Remote-SSH、WSL 场景下,VSCode 会为每个连接启动独立的 Extension Host。一个窗口卡,不代表所有都卡;但任务管理器里只看到一个 “Code Helper”,容易误判。
- 运行
code --status,注意看输出里是否出现多个Extension Host行,每行带不同 PID - 对每个高占用 PID,用
ps -p [pid] -o args=(macOS/Linux)或任务管理器“详细信息”页右键 → “打开文件位置”,确认它对应哪个工作区或远程连接 - 若某窗口专用于 Python 项目,而另一窗口开的是纯 Markdown,却共用一个高占 Extension Host,说明插件作用域没设对——应右键插件 →
Disable (For This Workspace),而非全局禁用
files.watcherExclude 配错通配符,等于没配
这个配置本该立竿见影,但写错一个字符就白忙活。它不生效不是因为 VSCode 慢,而是规则根本没被识别。
- 必须写成
"**/node_modules/**": true,不能是"*node_modules*"、"/node_modules/"或"node_modules" - 必须放在项目根目录的
.vscode/settings.json中,用户级设置不生效 - 改完后必须关闭并重新打开该工作区——仅保存文件不会重载监听器
- Linux/macOS 用户顺手执行
cat /proc/sys/fs/inotify/max_user_watches,若低于524288,需运行sudo sysctl fs.inotify.max_user_watches=524288
pyright 的 Extension Host,或是 .vscode/settings.json 里那行写着 "**/node_modules/**": false 的“假排除”。











