必须写"/node_modules": true等带/前缀的glob模式才生效;裸写"node_modules": true或"node_modules/**": true均无效,因vscode仅匹配带路径分隔符的字面路径,且不识别无前缀规则。

search.exclude 里填什么才真正排除文件夹
必须写 "**/node_modules": true 这类带 **/ 前缀的 glob 模式,否则 VSCode 根本不识别。只写 "node_modules": true 或 "node_modules/**": true 都无效——前者被当字面量匹配,后者因缺少开头通配符无法命中嵌套路径(如 src/lib/node_modules)。
-
"**/node_modules": true:推荐,跳过所有层级下的该目录(含其全部子内容),性能好、语义清晰 -
"/node_modules": true:仅根目录,适合单层结构,但多数项目用不上 -
"**/dist/**": true:合法但冗余,**/dist已足够,结尾/**不增加效果,旧版本反而可能干扰匹配 - 别写
"./node_modules"或"node_modules/":斜杠方向、前缀缺失、相对路径写法全都不被支持
搜索面板右下角「Files to exclude」怎么填
这里填的是临时规则,优先级高于 search.exclude,但只对本次搜索生效。语法和 search.exclude 一致,仍需 **/ 开头,且多个规则用英文逗号分隔、不能有空格。
-
**/test/**, **/legacy/**:立刻跳过测试和遗留代码目录 -
**/packages/core/**:配合 include 使用,可精准收缩搜索范围 - 填了内容后,
search.exclude里同名规则会被覆盖,哪怕刚改完设置也不会生效 - 误填
node_modules或dist/这种无前缀写法,VSCode 会静默忽略整条,不报错也不提示
为什么改了配置还是搜到被排除的目录
不是配置没写对,就是规则没生效。最常见原因是作用域或缓存问题。
- 检查是否改在了
files.exclude:它只影响侧边栏显示,和全局搜索完全无关 - 确认修改的是工作区
.vscode/settings.json,而不是用户设置——多根工作区下,每个子文件夹的search.exclude是独立的 - VSCode 搜索依赖本地索引,改完
search.exclude后,已打开的搜索面板不会自动刷新结果;删掉搜索词再输一遍,或关闭重开面板 - 如果用了插件自动生成配置,注意输出格式是否为对象:
"**/*.log,**/*.tmp": true是错的,必须拆成两个键值对
排除规则写错会拖慢搜索速度
宽泛或嵌套过多的 glob 模式会让 VSCode 在扫描前做大量字符串匹配,大项目里尤其明显。
- 避免
"**/a/**/b/**/c.js"这类写法:匹配开销随**数量指数增长 - 别用
"**/.*"排除所有隐藏文件:每个文件都要检查是否匹配,小项目无感,中大型项目卡顿肉眼可见 - 合并同类项:用
"**/*.log"和"**/logs/**"两条,比为每个日志路径单独写一条更高效 - 排除文件夹就用
"**/dist",不用"**/dist/**";排除文件类型才加*,比如"**/*.d.ts"
**/,或错配到 files.exclude,整个配置就等于没写。











