直接修改 files.exclude 即可控制 vs code 文件资源管理器显示,需用 glob 模式(如 "*/.spec.ts"),路径相对工作区根目录;优先级为工作区设置 > 用户设置;修改后需关闭并重新打开文件夹生效,且 files.exclude 与 search.exclude 互不影响。

直接改 files.exclude 就行,但必须写对 glob 模式
VS Code 的文件资源管理器(左侧文件树)是否显示某个文件,完全由 files.exclude 控制。想全局隐藏特定扩展名(比如所有 .spec.ts、.log),不是靠插件或界面开关,而是往用户级 settings.json 里加规则。
关键点在于路径模式必须是 glob,且所有路径都相对于工作区根目录 —— 不是当前文件夹,也不是系统绝对路径:
-
"**/*.spec.ts": true✅ 匹配任意层级下所有该后缀文件 -
"*.spec.ts": true❌ 只匹配项目根目录下的,子目录里无效 -
"**/.*": true会隐藏所有点文件(如.env、.gitignore),默认就存在,删它才能看到这些文件 - 含空格的扩展名(如
.my config)直接写"**/*.my config": true,不用转义
用户设置 vs 工作区设置:改错地方就白忙
全局生效 ≠ 改用户设置就一定管用。VS Code 的配置优先级是:工作区设置 > 用户设置。如果你在项目根目录下有 .vscode/settings.json,且里面也定义了 files.exclude,那用户级的同名配置会被完全忽略。
验证方法很简单:
- 按
Ctrl+Shift+P(或Cmd+Shift+P),运行Preferences: Open Workspace Settings (JSON) - 如果这个文件存在且含
files.exclude,你就得在这里改,而不是用户设置 - 想统一团队行为?把规则写进项目里的
.vscode/settings.json并提交到 Git
改完不生效?别只刷新,要重开文件夹
files.exclude 修改后,VS Code 不需要重启,但资源管理器缓存不会自动清空。常见“改了没反应”其实是缓存没更新:
- 关闭当前文件夹:
File > Close Folder - 重新打开:
File > Open Folder,选同一个路径 - 不要只点「重新加载窗口」——它不刷新资源管理器的文件索引状态
- 如果仍为空,检查是否误写了
"**/*": true这类宽泛规则,它会让整个侧边栏变空
别和 search.exclude 搞混:一个管看,一个管搜
很多人以为改了 files.exclude 后,Ctrl+Shift+F 全局搜索也会自动跳过那些文件 —— 实际上不会。搜索范围由独立的 search.exclude 控制,两者默认值虽相似,但互不影响。
例如你隐藏了 **/*.log,但还想在搜索中包含日志内容,就得单独确认:search.exclude 里不能有同一规则。反之,若只想让搜索更快却不影响侧边栏显示,就只动 search.exclude,不动 files.exclude。
最易被忽略的是:点开搜索框右上角的「files to exclude」临时输入框填 node_modules/**,比改配置更安全,也不污染任何设置文件。











