VS Code 搜索默认不排除以 . 开头的普通隐藏文件(如 .env),因 search.exclude 与 files.exclude 独立;需在 settings.json 中添加 "*/.": true 才能统一排除所有隐藏项。

为什么隐藏文件夹没被搜索排除
VS Code 默认会把 .git、.vscode 这类隐藏文件夹加进 search.exclude,但默认规则不覆盖以 . 开头的普通隐藏文件(比如 .env、.prettierrc)。它们虽然在资源管理器里不显示(受 files.exclude 控制),但搜索时仍会被扫到——因为 search.exclude 和 files.exclude 是两套独立配置。
如何让所有隐藏文件都不参与搜索
直接在工作区或用户 settings.json 中补上通配规则:
-
"**/.*": true—— 匹配任意路径下的隐藏文件和文件夹(注意斜杠位置,**/.*/只匹配隐藏文件夹,漏掉.env这类文件) - 如果只想排除隐藏文件但保留隐藏文件夹(如需搜
.vscode/tasks.json),用"**/.*.*": true - 别只改
files.exclude,它只管资源管理器显示,对搜索无效
搜索面板里临时禁用排除规则的坑
搜索框右下角的 Exclude 输入框清空后,确实能强制包含所有内容,包括 .git 和 node_modules——但这不是“显示隐藏文件”,而是绕过全部排除逻辑。容易误操作改到构建产物或依赖源码,尤其执行替换(Ctrl+Shift+H)时风险更高。
更安全的做法是:保持 search.exclude 规则有效,需要查某个隐藏文件时,单独在搜索面板的 files to include 里填 .env 或 **/.vscode/**。
多根工作区下 search.exclude 不生效的真相
在多根工作区中,VS Code 会优先读取每个文件夹根目录下的 .vscode/settings.json,而不是用户全局设置。如果你在某个子项目里没配 search.exclude,即使全局设置了 "**/.*": true,那个子项目依然会搜出 .env。
验证方法:打开搜索面板 → 看左上角显示的是「工作区」还是「用户」→ 点击「在设置中编辑」,确认修改的是当前上下文的配置文件。
真正起效的配置必须落在对应文件夹的 .vscode/settings.json 里,或者明确指定为「工作区设置」而非「用户设置」。











