VSCode默认通过"*/.": true规则在files.exclude中主动过滤隐藏文件,需编辑workspace settings JSON删除该行并关闭重开文件夹生效,同时需同步配置search.exclude。

VSCode 里看不到 .env、.git、.htaccess 这类文件,不是系统没生成,也不是你删了——是 VSCode 主动把它们过滤掉了。默认的 "**/.*": true 规则在 files.exclude 里生效,跟操作系统是否设为“隐藏”完全无关。
改 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更稳妥
SSH 远程开发时得配对端
通过 Remote-SSH 连接 Linux/macOS 主机时,files.exclude 的修改必须作用于远程端设置,而非本地:
- 连接成功后,在远程窗口中执行
Preferences: Open Remote Settings (JSON) - 编辑的是远程主机上的配置(路径不可见,但生效位置在
~/.vscode-server/data/Machine/settings.json) - 不要试图在本地改——那只会控制本地窗口行为,对远程文件树无效
- 改完保存,仍需关闭并重开远程文件夹才能刷新资源管理器
很多人卡在“改了设置→点了保存→以为完了”,结果白调半天。记住:VSCode 的资源管理器缓存不自动更新,Close Folder → Open Folder 是硬性步骤,跳不过。


















