VSCode默认通过"*/.": true规则在files.exclude中主动过滤隐藏文件,故.env、.git、.htaccess等点文件不显示;需编辑workspace settings JSON删除或调整该规则,并关闭重开文件夹生效,同时需同步配置search.exclude。

为什么 .env、.git、.htaccess 在资源管理器里不显示?
VSCode 并不是读取操作系统隐藏属性来决定是否显示文件,而是主动用 files.exclude 规则过滤掉它们。默认规则 "**/.*": true 会匹配所有路径下以点(.)开头的文件和文件夹——所以 .env、.git、.vscode 全被拦在资源管理器外,哪怕你在 Finder 或 Explorer 里手动设为可见也没用。
改 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
注意顺序无关,VSCode 按 glob 精确匹配 - 保存后,必须关闭再重新打开当前文件夹(
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更稳妥
SSH 远程开发时显示隐藏文件要配对端
通过 Remote-SSH 连接 Linux/macOS 主机时,files.exclude 的修改必须作用于远程端设置,而非本地:
- 连接成功后,在远程窗口中执行
Preferences: Open Remote Settings (JSON) - 编辑的是远程主机上的
~/.vscode-server/data/Machine/settings.json(路径不可见,但配置生效位置在此) - 不要试图在本地
settings.json里改——那只会控制本地窗口行为,对远程文件树无效 - 改完保存,仍需关闭并重开远程文件夹才能刷新资源管理器
真正容易被忽略的是缓存行为:VSCode 资源管理器不会热更新 files.exclude 变更,必须重新加载文件夹;而很多人卡在“改了设置→点了保存→以为完了”,结果白调半天。


















