VSCode资源管理器默认通过"*/.": true规则主动过滤以点开头的文件,故.env、.git、.htaccess不显示;需编辑workspace settings JSON删除或调整该规则,并关闭重开文件夹生效,同时须同步配置search.exclude。

VSCode 里看不到 .env、.git、.htaccess 这类文件,不是系统没生成,也不是你删了——是它自己用 files.exclude 主动过滤掉了。
为什么资源管理器里根本找不到 .git 或 .env?
VSCode 不读操作系统的“隐藏属性”,它靠 files.exclude 规则硬过滤。默认规则 "**/.*": true 会匹配所有路径下以点开头的条目,所以 .git、.env、.DS_Store 全被拦在资源管理器外,哪怕你在 Finder 或 文件资源管理器里设为可见也没用。
常见现象包括:
- 确认
.git存在(终端里ls -la能看到),但 VSCode 左侧树里空空如也 -
Ctrl+P搜不到.env,输入后列表直接为空 - 右键项目根目录 → “在资源管理器中显示” → 打开的是系统窗口,但里面能看到
.git,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 还在起作用。它和 files.exclude 完全无关,需单独处理:
- 同样在 workspace settings JSON 中,检查是否存在
"search.exclude" - 如果有
"**/.*": true或"**/.env": true这类规则,删掉或设为false - 没有该字段也不代表安全——VSCode 有内置默认值,所以显式写一条
"**/.*": false更稳妥
远程开发(Remote-SSH)要配对端,本地改没用
通过 Remote-SSH 连 Linux/macOS 主机时,files.exclude 的修改必须作用于远程端设置,而非本地:
- 连接成功后,在远程窗口中执行
Preferences: Open Remote Settings (JSON) - 编辑的是远程主机上的配置(路径不可见,但生效位置在
~/.vscode-server/data/Machine/settings.json) - 不要试图在本地改——那只会控制本地窗口行为,对远程文件树无效
- 改完保存,仍需关闭并重开远程文件夹才能刷新资源管理器
很多人卡在“改了设置→点了保存→以为完了”,结果白调半天。files.exclude 变更必须重新加载文件夹,这是最容易忽略的硬性步骤。











