VSCode默认不显示.env、.git、.htaccess是因files.exclude中"*/.": true规则主动过滤点文件/夹,非系统隐藏;需删除或设为false并重开文件夹生效,且search.exclude须单独配置,因其与files.exclude完全独立。

VSCode 默认不显示 .env、.git、.htaccess 是因为 files.exclude 里写了 "**/.*": true
这不是操作系统级隐藏,也不是读取文件属性,而是 VSCode 主动用 glob 规则过滤掉所有以点(.)开头的文件和文件夹。你手动在 Finder 或 Explorer 里设为“可见”,对 VSCode 完全无效。
这个规则存在于默认设置中,哪怕你没改过 settings.json,它也生效。常见表现包括:.env 在资源管理器里空着、Ctrl+P 搜不到 .gitignore、.vscode/tasks.json 根本不出现。
-
"**/.*": true匹配所有层级下的点文件/夹,比如src/.env、dist/.git、.htaccess - 它只控制「资源管理器显示」,和搜索无关 ——
search.exclude是另一套系统 - 删掉这行或设为
false才能放行;注释掉不算数,必须从 JSON 对象里移除或显式覆盖
search.exclude 和内置硬编码排除是两回事:改了它也搜不到 .git
很多人清空 search.exclude 后仍搜不到 .git/config,是因为 VSCode 把 .git、.vscode、.DS_Store 这些路径写死在搜索逻辑里了 —— 它们优先级高于任何用户配置。
想让这些目录被搜到,不能靠“删配置”,必须显式反向关闭:
-
"**/.git": false—— 不是删掉这一行,是把它值设为false -
"**/.vscode": false—— 同理,true/false必须写清楚 -
"**/.env": true是你得手动加的,VSCode 默认不拦.env文件(只拦目录) - 注意写法:
".env"不匹配src/.env,必须用"**/.env"
临时搜一次隐藏内容?关掉搜索面板右下角的「使用排除项」开关
不想改配置,又急需查 .git/hooks/pre-commit 或 .vscode/launch.json 里的某段文本?最快速的办法是:
- 打开搜索面板(
Ctrl+Shift+F/Cmd+Shift+F) - 点右下角那个「斜杠盖住文件夹」的图标(即「使用排除项」开关),把它关掉
- 此时会跳过所有规则:硬编码目录、
search.exclude、.gitignore全部失效 - 搜完务必再点开它——否则下次搜索会慢得明显,尤其当
node_modules被一起扫进来时
files.exclude 和 search.exclude 必须分开配,且作用域不同
一个常见错误是只改了 files.exclude 让 .env 显示出来,结果 Ctrl+Shift+F 还是搜不到——因为 search.exclude 里可能还留着 "**/.env": true,或者根本没配,而默认规则又没覆盖它。
二者完全独立:
-
files.exclude控制左侧资源管理器是否显示 -
search.exclude控制全局搜索是否扫描 - 工作区设置(
.vscode/settings.json)优先级高于用户设置,改错地方等于白改 - 修改
files.exclude后,必须关闭再重新打开文件夹才生效;改search.exclude则实时生效
最容易被忽略的是:VSCode 的“隐藏”在搜索中分两级——目录有硬编码拦截,文件基本放行;但用户常把两者当成一回事,反复检查 search.exclude 却漏掉了硬编码那层。











