search.exclude 必须写在工作区级 .vscode/settings.json 中才生效,用户级设置为全局生效但不属工作区配置;正确写法为 "**/node_modules": true 或 "/node_modules": true;临时排除会话级覆盖且忽略 search.exclude。

search.exclude 必须写进 .vscode/settings.json 才生效
工作区级的全局搜索排除,只认 .vscode/settings.json 里的 search.exclude,写在用户级 settings.json 里是全局生效,但不算“工作区配置”。如果你希望每个项目有自己独立的排除规则(比如 A 项目要排除 **/vendor,B 项目要排除 **/lib),就必须把配置放在对应项目的 .vscode/settings.json 中。
常见错误是直接改用户设置,结果所有项目都套用同一套规则;或者新建了 .vscode 文件夹但没创建 settings.json,导致配置根本没加载。
- 路径必须存在:
.vscode/settings.json是唯一被 VSCode 自动识别的工作区配置入口 - 结构必须是对象:
"search.exclude": { ... },不能是数组或字符串 - 不要和
files.exclude混用——后者只影响侧边栏显示,对Ctrl+Shift+F完全无效
排除 node_modules 的正确 glob 写法只有两种
VSCode 的 glob 解析器不支持裸路径匹配,"node_modules": true 或 "node_modules/**": true 都不会生效。真正起作用的只有带明确作用域前缀的写法:
-
"**/node_modules": true✅ 匹配所有嵌套层级下的node_modules目录(最常用) -
"/node_modules": true✅ 只匹配工作区根目录下的node_modules(适合单包 monorepo 根) -
"**/node_modules/**": true⚠️ 语义上等价于前者,但多一层递归判断,无实际收益 -
"**\node_modules": true❌ Windows 反斜杠不被解析,一律用正斜杠
如果项目结构是 packages/ui/node_modules 或 src/backend/node_modules,没写 **/ 就完全过滤不掉。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
临时排除会覆盖 search.exclude,且不保存
搜索面板右下角点 ⋯ → «Files to exclude» 输入的内容,优先级高于 search.exclude,而且是会话级临时覆盖:关掉搜索面板、重启 VSCode、甚至切换到另一个工作区,它都会失效。
- 多个规则用英文逗号分隔:
**/dist,**/test,**/*.log(注意:不能有空格) - 一旦这里非空,VSCode 就彻底忽略
search.exclude里的同名规则 - 适合快速验证:“我改了某段逻辑,它到底还在不在 legacy 目录里?”——临时加一条
**/legacy/**再搜
别把它当长期配置用,否则你会反复怀疑“为什么我刚改的 search.exclude 不生效”。
多根工作区中 search.exclude 不跨子文件夹继承
如果你打开的是多根工作区(多个文件夹并列在资源管理器里),每个子文件夹下的 .vscode/settings.json 是独立读取的。根目录下写的 search.exclude 不会自动应用到子文件夹。
- 例如:工作区包含
frontend/和backend/,你想在frontend/.vscode/settings.json里排除**/node_modules,就得单独配一份 - 没有“父级继承”机制,也没有通配符跨目录传播能力
- 团队协作时,建议把
search.exclude提交进各子项目的.vscode/settings.json,而不是靠个人用户设置兜底
最容易被忽略的是:你以为配了一次就全项目生效,结果在某个子文件夹里 Ctrl+Shift+F 还是满屏 node_modules 里的第三方代码——其实是那个子文件夹压根没自己的 .vscode/settings.json。










