files.exclude 未生效主因是路径未用 glob 且未相对工作区根目录书写;需用"/node_modules"等 glob 模式,删"/.*": true 可显示点文件,且必须关闭并重开文件夹才生效。

files.exclude 为什么写了却没隐藏?路径必须用 glob 且相对工作区根
写 files.exclude 后目录还在资源管理器里,大概率是路径写错了。VSCode 不认正则、不认绝对路径、也不按当前文件夹位置解析——它只接受 glob 模式,且所有路径都相对于你打开的**工作区根目录**。
常见错误和对应写法:
-
"node_modules"→ 只匹配根目录下的node_modules,子目录里的完全无效 -
"**/node_modules"→ 正确,递归匹配任意层级的同名文件夹 -
"src/node_modules"→ 只匹配src/下的,漏掉packages/foo/node_modules -
"**/dist/**"和"**/dist"效果几乎一样,但后者更轻量,推荐用 - 路径含空格(如
my folder)直接写"my folder": true,不用引号转义或反斜杠
想让 .env 或 .git 显示出来?删掉默认的 "**/.*": true
VSCode 默认就用 "**/.*": true 把所有点开头的文件/文件夹(.env、.git、.DS_Store)从资源管理器里过滤掉了。这不是系统隐藏属性,是它自己主动拦的。
要放行某些点文件,不能只删这一行,得拆开配:
- 想全显示所有点文件:删掉或注释掉
"**/.*": true - 只想显示
.env,但继续隐藏.git和.DS_Store:"**/.git/**": true、"**/.DS_Store": true、"**/.*": false - 保存后,**必须关闭再重新打开文件夹**(
File > Close Folder→File > Open Folder),仅刷新窗口或重启 VSCode 不生效
files.exclude 和 search.exclude 是两套独立系统,别只配一半
files.exclude 管左侧文件树和 Ctrl+P 列表;search.exclude 只管 Ctrl+Shift+F 全局搜索。两者规则写法一样,但互不影响。
典型翻车现场:
- 配了
"**/node_modules": true在files.exclude,结果搜索时还是扫node_modules→ 没配search.exclude - 删了
"**/.*": true让.env显示了,但Ctrl+Shift+F还是搜不到 →search.exclude里还有同样规则 - 想统一管理,建议在工作区
.vscode/settings.json中同时写两个字段,避免用户级配置干扰
工作区设置优先级高于用户设置,改错地方等于没改
很多人改了用户级 settings.json 却没效果,是因为项目根目录下已有 .vscode/settings.json,而 VSCode 会**完全覆盖**同名配置项。
判断是否被覆盖:
- 用
Ctrl+Shift+P/Cmd+Shift+P运行Preferences: Open Workspace Settings (JSON) - 如果里面已存在
files.exclude,就直接在这里改,别碰用户设置 - 团队项目建议把
.vscode/settings.json提交到 Git,确保所有人看到一致的隐藏逻辑 - 写错成
"**/*": true或"**": true这类宽泛模式,会导致整个资源管理器变空——不是崩溃,是真·什么都没了


















