VSCode中.env等文件不可见是因files.exclude配置过滤所致,需检查并修改工作区settings.json而非用户设置,且必须关闭再重新打开文件夹才能刷新缓存;files.exclude与search.exclude需分别配置。

VSCode 里 .env、.gitignore 这类文件看不见,不是文件丢了,是被 files.exclude 主动过滤掉了——删掉那条通配规则就能恢复,但得注意工作区设置优先级更高。
为什么删了 "**/.*": true 还是不显示?
最常见的情况是改错了配置层级:你编辑的是用户级 settings.json,但当前项目目录下已有 .vscode/settings.json,它里面的 files.exclude 会完全屏蔽用户设置。检查方法很简单:打开命令面板(Ctrl+Shift+P),运行 Preferences: Open Workspace Settings (JSON),看里面有没有 files.exclude 字段。
如果存在,直接在里面删或注释掉 "**/.*": true;不存在,再去看用户设置。改完保存后,必须关闭并重新打开当前文件夹(File > Close Folder → File > Open Folder),否则资源管理器缓存不会刷新。
files.exclude 和 search.exclude 是两套独立系统
你让 .env 在左侧文件树里出现了,但 Ctrl+Shift+F 全局搜索还是搜不到?那大概率是 search.exclude 也在拦着它。这两个配置互不联动,必须分别处理:
-
files.exclude控制资源管理器和Ctrl+P文件跳转列表 -
search.exclude只管搜索结果是否包含某路径,不影响文件可见性 - 典型错误:只删了
files.exclude里的"**/.*": true,却漏了search.exclude里同样的一行
推荐做法:把需要排除的项(比如 "**/*.log": true)手动同步加到两个地方,避免行为不一致。
只想放行部分点文件,比如保留 .env 但继续隐藏 .DS_Store
别硬扛通配规则,改成精确排除更安全:
- 删掉
"**/.*": true - 单独加需要隐藏的项:
"**/.DS_Store": true、"**/.git/**": true、"**/node_modules/**": true - 想让
.env显示,就别写任何针对它的规则——默认它就会出现
这样既满足开发时查看配置文件的需求,又避免把无用的系统隐藏文件塞进项目视图,还方便团队统一提交 .vscode/settings.json 到 Git。
真正容易被忽略的点在于:VSCode 的文件可见性不是靠操作系统“隐藏属性”,而是纯配置驱动的过滤逻辑。一旦工作区设置存在,它就接管一切,连重启都不管用——必须确认修改位置正确,且用“关闭再重开文件夹”来强制刷新视图缓存。











