快速确认插件导致搜索变慢:执行code --disable-extensions后秒出搜索结果即证实问题在扩展;再运行developer: show running extensions查activation time超1000ms插件,并用code --status验证真实耗时。

插件确实会让 VSCode 全局搜索卡住,但不是所有插件都“重”,真正拖慢搜索的往往是那些在启动时就抢资源、又没配对 files.watcherExclude 的插件。
怎么快速确认是插件导致搜索变慢
别等搜索面板转圈。终端直接运行:code --disable-extensions,然后按 Ctrl+Shift+F 搜个关键词——如果秒出结果,问题 100% 出在扩展上。
接着做两件事:
- 启动后立刻按
Ctrl+Shift+P→ 输入并运行Developer: Show Running Extensions,重点关注Activation Time (ms)超过 1000 的插件 - 再执行
code --status,看输出里Extensions区域的真实耗时,比 GUI 更准
哪些插件最常让搜索卡在“正在搜索”
它们不显眼,但 package.json 里声明了 "activationEvents": ["*"] 或 "onStartupFinished",一开编辑器就干重活:
-
ms-vscode.js-debug:即使你从不调试 JS,也会初始化完整调试服务,占用文件监听通道 -
gitlens:默认开启全仓库历史扫描,gitlens.advanced.caching.enabled不关,会持续读取 .git/objects/ 下成千上万个文件 -
ms-python.python(旧版本):打开任意文本文件也尝试初始化 Python 环境,触发大量fs.watch注册 -
Remote - SSH:连接失败时 UI 线程挂起几秒,期间搜索面板打不开
注意:这些插件本身不是“坏”,而是它们的监听行为和 search.exclude 完全无关——只配 search.exclude,files.watcherExclude 没同步,照样卡。
禁用前先改配置,很多“卡”是默认太莽
卸载不是第一选择。多数卡顿源于插件默认开启了全量监听,而你根本不需要:
-
gitlens:关掉gitlens.advanced.caching.enabled和gitlens.fileHistory.followSymbolicLinks -
js-debug:设debug.javascript.autoAttachFilter为onlyWithFlag,避免自动 attach 所有 Node 进程 -
Python插件:把python.defaultInterpreterPath显式指向项目内 venv/bin/python,避免它扫全局 site-packages
改完配置后,必须重载窗口(Ctrl+Shift+P → Developer: Reload Window),否则监听器不会重置。
为什么配了 search.exclude 还卡?关键漏了 files.watcherExclude
search.exclude 只管“搜的时候不读”,但 files.watcherExclude 才管“启动时不监听”。两者缺一不可:
- 只配
search.exclude:node_modules/.bin/esbuild不参与搜索,但fs.watch仍在监听它,每次yarn install都触发几千次事件 - 正确写法必须同步加到
.vscode/settings.json中:"**/node_modules/**": true、"**/dist/**": true、"**/.git/**": true -
files.watcherExclude值必须是布尔值true,不是字符串"true";路径规则和search.exclude完全一致,建议直接复制
最容易被忽略的是:改完必须重载窗口才生效,热更新不触发 watcher 重注册——这点比搜索逻辑本身还关键。











