直接修改 files.exclude 即可实时生效,无需重启;需正确书写 glob 模式,如 "node_modules": true 和 "**/node_modules": true 分别隐藏根目录及子目录下的该文件夹,同时配置 search.exclude 才能避免搜索中出现无关结果。

直接改 files.exclude 就行,不用重启编辑器
VSCode 1.80+ 版本起,修改 files.exclude 后会实时刷新资源管理器,不再需要重启。关键是要写对 glob 模式,否则可能整个文件树变空或完全不生效。
-
"node_modules": true只隐藏项目根目录下的node_modules文件夹 -
"**/node_modules": true隐藏所有子目录里的同名文件夹(比如packages/foo/node_modules) - 想同时覆盖两种情况?直接写两条:
"node_modules": true和"**/node_modules": true - 隐藏点文件(如
.env、.gitignore)用"**/.*": true,但注意这也会匹配.vscode—— 如果你还要编辑它,就得单独放行:".vscode": false
files.exclude 和 search.exclude 必须分开配
很多人只配了 files.exclude 却发现搜索里还是满屏 node_modules 的结果,就是因为没同步设置 search.exclude。这两个配置完全独立,一个管“眼睛看到什么”,一个管“Ctrl+Shift+F 扫哪些地方”。
-
files.exclude影响:资源管理器、Ctrl+P文件跳转、新建/保存时的路径提示 -
search.exclude仅影响全局搜索(Ctrl+Shift+F),不影响任何界面显示 - 典型组合配置:
"**/node_modules": true、"**/dist": true、"**/*.log": true、"**/__pycache__": true - 别漏掉
"**/.git": true—— 它不会影响 Git 功能,但能避免搜索时扫到 Git 内部文件
工作区级配置优先于用户级,推荐项目内写 .vscode/settings.json
把配置写进项目根目录的 .vscode/settings.json,比改全局用户设置更安全、更可复现。团队协作时,其他人一打开项目就自动获得一致的过滤体验,不用各自折腾。
- 新建
.vscode文件夹,再建settings.json,内容只需包含files.exclude和search.exclude字段 - 如果已有用户级配置(比如全局隐藏了所有
.DS_Store),项目级配置可以覆盖它,无需删除旧规则 - 注意不要误写成
.vscode/settings.jsonc或其他后缀 —— VSCode 只认.json - Git 提交这个文件是安全的,它不包含敏感信息,只影响本地开发视图
常见失效原因:路径模式写错 or 规则被覆盖
最常遇到的问题不是功能不行,而是模式语法没踩准,或者配置被更高优先级的设置顶掉了。
- 写
"**/*": true或"**": true—— 这会让整个资源管理器空白,因为匹配了所有路径 - 用正则写法(如
^\.env$)或本地相对路径(如./.env)——files.exclude只接受 glob,且路径始终相对于工作区根 - 检查是否启用了 Git 扩展的
git.ignoreLegacyExclude,设为false时,.gitignore中的条目也可能影响文件显示(非预期行为) - 打开命令面板(
Ctrl+Shift+P),输入 “Preferences: Open Workspace Settings (JSON)” 确认当前生效的是哪个settings.json
实际效果取决于你写的 glob 是否真正匹配目标路径,而不是靠猜。调试时,先从具体路径试起(比如 "LICENSE": true),再逐步扩展到通配模式。一旦配错,资源管理器可能瞬间“消失”,这时候别慌,删掉刚加的那行再保存就行。











