search.exclude 配置需写在 .vscode/settings.json 中,值为 true,键用 glob 模式如 "/node_modules/";还需同步配置 files.watcherexclude 并重载窗口,否则仍卡顿。

search.exclude 配置不生效?先确认写法和位置
VSCode 不会自动跳过 node_modules 或 dist,哪怕它们已在 .gitignore 里。真正起作用的只有 search.exclude,且必须写对格式和位置:
-
search.exclude必须放在.vscode/settings.json(推荐)或用户级settings.json中,写在package.json或tsconfig.json里完全无效 - 值必须是
true,不能是"true"、1或false - 键必须是 glob 模式:
"**/node_modules"✅,"node_modules"❌,"**\node_modules"❌(反斜杠不识别) - 常见可靠写法:
"**/node_modules/**"、"**/dist/**"、"**/*.log"
为什么配了 search.exclude 还搜出 venv 或 __pycache__?
这是 Python 大型项目最常踩的坑:只配 search.exclude 不够,files.watcherExclude 必须同步配置,否则文件监视器仍在后台疯狂扫描这些目录,拖慢整个搜索准备阶段。
-
files.watcherExclude要求结尾带/**才能递归排除子内容,例如:"**/venv/**"✅,"**/venv"❌(只排除文件夹本身) - Python 项目建议一并排除:
"**/venv/**"、"**/.mypy_cache/**"、"**/__pycache__/**"、"**/build/**" - 改完这两项后,必须执行
Ctrl+Shift+P→ 输入workbench.action.reloadWindow重载窗口,缓存才刷新
全局搜索卡顿,不是 CPU 问题,是索引没建好
大型项目首次打开搜索面板时显示 “Searching” 或左下角状态栏卡在 “Indexing”,这不是卡死,而是 VSCode 正在构建倒排索引。它按需增量更新,不是全量扫盘。
- 别急着关面板或重启——等状态栏提示完成再操作,通常几秒到一分钟不等
- 若长期卡住,可手动删掉项目根目录下的
.vscode/.search文件夹,强制重建索引 - 临时救急:在搜索面板右上角 ⋯ →
Files to exclude里填**/node_modules/**,**/dist/**(英文逗号分隔、无空格),本次搜索立即生效
正则替换前不验证上下文,可能直接炸掉运行时
想把 getUserInfo() 替成 fetchUserInfo(),但直接搜 getUserInfo 会误中 getUserInfoById 或注释里的字符串。
- 开启
Use Regular Expression(.*图标),搜:getUserInfo\(\)(括号要转义) - 务必勾选
Match Whole Word,避免匹配到super.getUserInfo()里的子串 - 点
Replace All in Files前,先点开 2–3 条结果看上下文——VSCode 不校验语法,替错一个return getUserInfo()就可能导致崩溃
最易被忽略的是:search.useIgnoreFiles 默认为 true,但若项目没 .gitignore,这条设置就形同虚设;而插件如 GitLens 可能绕过所有排除规则,导致搜索仍扫进不该扫的目录。实际优化效果,取决于这三者是否真正协同生效。











