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

VSCode 里看不到 .env、.git、.htaccess 等文件,不是系统没生成,而是它主动过滤掉了——必须改 files.exclude 才能显示。
为什么改了系统隐藏设置也没用?
VSCode 不读操作系统“隐藏属性”,它靠自己的规则过滤。默认规则 "**/.*": true 会把所有以点开头的路径(如 .git、.vscode、.claude)从资源管理器里抹掉。你在 Finder 或 Explorer 里设成“显示隐藏文件”,对 VSCode 完全无效。
- 常见现象:
ls -la能看到.env,但 VSCode 资源管理器和Ctrl+P都搜不到 - 确认方法:打开终端进项目根目录,执行
ls -la,如果文件存在但 VSCode 不显示,就是这个原因 - 注意:Windows 的
.git文件夹有时还受系统隐藏属性影响,但 VSCode 优先认files.exclude,所以系统设置只是辅助
怎么让隐藏文件在资源管理器里出现?
必须编辑 JSON 设置,删掉或覆盖通配规则。GUI 界面点开关没用,也别信“重启 VSCode 就行”——它不刷新缓存。
- 用
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),运行Preferences: Open Workspace Settings (JSON)(优先选这个,工作区设置会压过用户设置) - 找到
"files.exclude"对象,删掉或注释掉这一行:"**/.*": true - 如果只想放行部分点文件(比如留
.env但继续隐藏.DS_Store),就别删整行,改成:"**/.DS_Store": true、"**/.git/**": true、"**/.env": false - 保存后,必须执行
File > Close Folder→File > Open Folder,否则资源管理器还是空的
为什么 .env 显示出来了,但全局搜索(Ctrl+Shift+F)还是搜不到?
search.exclude 和 files.exclude 是两套独立配置,改一个另一个不会同步。你得单独处理搜索侧的过滤。
- 同样在 workspace settings JSON 中,检查是否存在
"search.exclude" - 如果里面有
"**/.*": true或"**/.env": true,删掉或显式设为false - 更稳妥的做法是加一条:
"**/.*": false,确保搜索不拦点文件 - 不需要重启或重开文件夹,改完保存即生效
SSH 远程开发时隐藏文件不显示,该改哪边?
远程连接下,files.exclude 必须作用于远程端,本地改设置毫无意义。
- 连上远程主机后,再按
Ctrl+Shift+P,运行Preferences: Open Remote Settings (JSON) - 编辑的是远程服务器上的
~/.vscode-server/data/Machine/settings.json(路径不可见,但配置生效位置在此) - 改完保存,仍需
Close Folder→Open Folder才能刷新远程文件树 - 别在本地设置里反复试——那是控制你本地窗口行为的,跟远程文件列表无关
最常被跳过的一步是重开文件夹;很多人改完 settings.json 就以为结束了,结果卡在“明明改了却没反应”。另外,search.exclude 容易被当成附属项忽略,但它真能让你白忙活半天——文件都看见了,就是搜不出来。











