VSCode中files.exclude后缀匹配需用"/.ext"格式才生效,如"/.spec.ts";仅写"*.spec.ts"只匹配根目录,".spec.ts"则完全无效。

直接在 files.exclude 里加 glob 模式就能按后缀批量隐藏,但必须注意匹配范围和作用域,否则写了也不生效。
怎么写后缀匹配规则才有效
VSCode 的 files.exclude 使用 glob 语法,不是正则,也不是简单字符串。后缀匹配必须带通配符 **/ 或 *,否则只匹配同级文件:
-
"**/*.spec.ts"→ 正确:匹配所有层级的.spec.ts文件 -
"*.spec.ts"→ 错误:只匹配项目根目录下的.spec.ts,子目录里不生效 -
".spec.ts"→ 完全无效:这不是合法 glob,VSCode 直接忽略 - 想同时隐藏多个后缀,就多写几条:
"**/*.log"、"**/*.pyc"、"**/*.swp"
为什么改了 settings.json 还是不隐藏
常见失效原因不是语法错,而是配置位置或优先级问题:
- 检查你改的是用户设置还是工作区设置——如果项目根目录下有
.vscode/settings.json,它会完全覆盖用户级的files.exclude - 运行命令
Preferences: Open Workspace Settings (JSON),确认当前生效的配置里确实包含了你要的规则 - 别漏掉
search.exclude:它和files.exclude无关,但如果你希望 Ctrl+Shift+F 搜索时也跳过这些文件,得单独加一遍相同规则 - 改完保存后,不用重启 VSCode,但要关闭再重新打开文件夹(
File > Close Folder→File > Open Folder),否则资源管理器缓存不刷新
哪些后缀适合批量隐藏,哪些要小心
批量隐藏能提升专注度,但有些后缀盲目隐藏会影响开发流程:
- 安全隐藏:
"**/*.log"、"**/*.tmp"、"**/*.swp"—— 这些基本是临时产物,无编辑价值 - 谨慎隐藏:
"**/*.js"、"**/*.map"—— 如果你用 TypeScript 或前端构建工具,隐藏它们会让调试更困难(比如断点打不到源码) - 绝对不要只写
"**/.*"来“显示所有隐藏文件”——这会把.git、.env全放出来,反而干扰;应该精确控制,例如只放开".env",同时保留"**/.DS_Store"和"**/.git/**"
真正容易被忽略的点是:VSCode 的排除逻辑是“过滤”,不是“操作系统级隐藏”。哪怕你在 files.exclude 里删掉了 "**/.*",.env 仍可能因 search.exclude 被挡在搜索外——两个地方得一起看,不能只盯一个。


















