VSCode默认只硬编码排除.git、.vscode等隐藏目录,不自动排除.env等隐藏文件;需显式配置"*/.": true才能排除所有层级隐藏文件,且files.exclude与search.exclude完全独立。

VSCode 默认不忽略隐藏文件,只忽略隐藏目录
很多人以为 .env、.gitignore、.editorconfig 这类以点开头的文件会被自动跳过搜索,其实不是。VSCode 内置规则只硬编码排除 .git/、.vscode/ 等**隐藏目录**,对隐藏**文件**基本放行——除非你手动加进 search.exclude。
必须显式配置 "**/.*" 才能排除所有隐藏文件
"**/.*" 是唯一能覆盖所有隐藏文件(如 .env、.prettierrc)的 glob 模式。它不能写成 ".*" 或 "./.*",否则只匹配根目录下的隐藏文件,漏掉 src/.env 这类路径。
-
"**/.*": true✅ 匹配任意层级的隐藏文件(推荐) -
".*": true❌ 只匹配工作区根目录下的隐藏文件 -
"**/.*/**": true⚠️ 多余且旧版本可能误判,别用 - 值必须是布尔
true,写成"true"(字符串)会静默失效
临时禁用所有排除规则比改配置更快
搜 .git/config 或 .vscode/tasks.json 时,不用改配置——直接在搜索面板右下角点那个斜杠盖住文件夹的图标(「使用排除项」),把它关掉就行。这个操作会同时绕过:search.exclude、硬编码隐藏目录规则、search.useIgnoreFiles 读取的 .gitignore。
- 关掉后搜索变慢是正常的,尤其项目含
node_modules - 搜完务必再点开它,否则下次搜索仍会扫所有被排除项
- 这个开关优先级最高,哪怕
search.exclude里写了"**/.*": true,它一关就全失效
别混淆 files.exclude 和 search.exclude
files.exclude 控制左侧资源管理器是否显示文件,search.exclude 控制搜索是否扫描文件——二者完全独立。只配 files.exclude 不会影响搜索,.env 依然会被搜到。
- 想让
.vscode文件夹既不显示也不被搜:同时配"**/.vscode": true到两个配置里 - 只想让它可被搜但不显示:只在
files.exclude里加,search.exclude里不加 - 想让它显示且可被搜:两个配置里都设为
false(注意是布尔值,不是删掉)
真正容易被忽略的是:VSCode 对“隐藏”的处理是分层的——目录有默认拦截,文件没有;而用户常把两者当成一回事,反复检查 search.exclude 却始终找不到为什么 .env 还在结果里。











