VSCode默认用"*/.": true规则主动过滤所有点文件,故.env、.git等不显示;需编辑workspace settings JSON删除该行,并关闭重开文件夹生效,同时须同步配置search.exclude。

为什么改了 files.exclude 还是看不到 .env、.git、.htaccess?
VSCode 不是靠操作系统“隐藏属性”判断是否显示文件,而是主动用 files.exclude 规则过滤——默认那条 "**/.*": true 会把所有点开头的文件/文件夹(包括 .env、.git、.vscode)全拦在资源管理器外。你手动在 Finder 或 Explorer 里设为可见,对 VSCode 完全无效。
怎么改 files.exclude 才生效?
必须直接编辑 JSON 设置,GUI 界面点开关没用:
- 用
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)打开命令面板 - 运行
Preferences: Open Workspace Settings (JSON)(优先选这个,工作区设置覆盖用户设置) - 找到
"files.exclude"对象,删掉或注释掉"**/.*": true这一行 - 如果只想放行部分点文件(比如留
.env但继续隐藏.DS_Store),改成:"**/.DS_Store": true,<br>"**/.git/**": true,<br>"**/.*": false
- 保存后,必须关闭再重新打开当前文件夹(
File > Close Folder→File > Open Folder),仅刷新窗口或重启 VSCode 不生效
search.exclude 是独立开关,别漏配
你让 .env 显示出来了,但 Ctrl+Shift+F 搜索还是搜不到?大概率是 search.exclude 还在起作用:
- 同样在 workspace settings JSON 中检查是否存在
"search.exclude" - 如果里面有
"**/.*": true或"**/.env": true,删掉或显式设为false - VSCode 有内置默认值,所以最稳妥的是加一条:
"**/.*": false
远程开发(SSH)要改对端设置
通过 Remote-SSH 连 Linux/macOS 主机时:
-
files.exclude的修改必须作用于远程端,不是本地 - 连接成功后,在远程窗口中运行
Preferences: Open Remote Settings (JSON) - 编辑的是远程主机上的配置(路径不可见,但生效位置在
~/.vscode-server/data/Machine/settings.json) - 改完仍需关闭并重开远程文件夹才能刷新资源管理器
很多人卡在“改了设置→点了保存→以为完了”,结果白调半天。关键就两点:改对位置(工作区 or 远程)、关再重开文件夹——其他都是障眼法。











