VSCode在macOS中不显示.env等点文件是因files.exclude默认规则\*\*/.\*: true主动过滤,而非系统隐藏;需修改工作区或远程设置中的files.exclude并关闭重开文件夹。

VSCode 在 macOS 上不显示 .env、.git、.vscode 这类文件,不是系统隐藏导致的,而是它自己用 files.exclude 主动过滤掉了——改系统设置(比如 defaults write com.apple.finder AppleShowAllFiles true)对 VSCode 完全无效。
为什么 Finder 能看到的文件,VSCode 资源管理器里没有?
VSCode 不读取 macOS 的「隐藏属性」,只认自己的排除规则。默认内置规则 "**/.*": true 会匹配所有路径下以点开头的项,包括 .git、.env、.DS_Store,哪怕你在 Finder 里用 Command+Shift+. 显示出来了,VSCode 依然无视。
常见现象:
-
ls -a或 Finder 能确认.env存在,但资源管理器空白 -
Cmd+P搜索不到.htaccess - 右键项目根目录 → “在 Finder 中显示”,能看到
.vscode,但左侧树里没它
必须改 files.exclude,且优先用工作区设置
直接编辑 JSON 配置是唯一可靠方式。GUI 设置界面里的开关不起作用,也不能只删用户级设置——工作区设置(即项目下的 .vscode/settings.json)优先级更高,会覆盖全局配置。
操作步骤:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 按
Cmd+Shift+P打开命令面板,输入并选择Preferences: Open Workspace Settings (JSON) - 找到
"files.exclude"字段,删掉或注释掉"**/.*": true这一行 - 如果只想放行部分点文件(例如留
.env但继续隐藏.DS_Store),可替换为:"**/.DS_Store": true, "**/.git/**": true, "**/.*": false
- 保存后,必须执行
File > Close Folder再File > Open Folder——仅重启 VSCode 或刷新窗口无效
search.exclude 是独立开关,漏配就搜不到
files.exclude 只控制左侧资源管理器和 Cmd+P 文件跳转;search.exclude 单独控制 Cmd+Shift+F 全局搜索是否包含某路径。两者完全解耦。
你让 .env 显示出来了,但搜索仍找不到?大概率是 search.exclude 还锁着。检查方法:
- 同样在
workspace settings JSON中,确认是否存在"search.exclude"字段 - 如果有
"**/.*": true或"**/.env": true,删掉或设为false - 没这个字段也不代表安全——VSCode 有内置默认值,显式加一条
"**/.*": false更稳妥
远程开发(SSH)时,配置必须写在远程端
通过 Remote-SSH 连 Linux/macOS 主机时,files.exclude 修改必须作用于远程环境,而不是本地的 settings.json。
正确做法:
- 连接成功后,在远程窗口中运行
Preferences: Open Remote Settings (JSON) - 编辑的是远程主机上的
~/.vscode-server/data/Machine/settings.json(路径不可见,但配置生效位置在此) - 改完保存,仍需关闭并重开远程文件夹才能刷新资源管理器
- 别在本地改——那只会控制本地窗口行为,对远程文件树零影响
很多人卡在“改了设置→点了保存→以为完了”,结果资源管理器纹丝不动。核心就两点:改对地方(工作区 or 远程),关再开文件夹(不是重启)。这两步漏任何一环,都白调。

















