VS Code 默认不搜索硬编码排除的隐藏目录(如 .git、.vscode),但会搜索隐藏文件(如 .env),除非显式配置 search.exclude;需用 "**/.env" 格式且值为布尔 true,files.exclude 与 search.exclude 互不影响。

VSCode 默认会搜到 .env 这类隐藏文件,但不会搜 .git 目录
很多人误以为所有以 . 开头的文件都会被跳过,其实 VS Code 的行为是分层的:.git、.vscode、.DS_Store 这些**隐藏目录**是硬编码排除的,不管 search.exclude 有没有配;而 .env、.gitignore、.editorconfig 这类**隐藏文件**默认**参与搜索**——除非你显式加进 search.exclude。
所以如果你发现 .env 里改了配置却搜不到,大概率是因为没配这条:
{ "search.exclude": { "**/.env": true } }
-
"**/.env"必须带**/前缀,写成".env"只匹配根目录下的文件,不匹配src/.env - 多个隐藏文件要逐条写:
"**/.env": true、"**/.gitignore": true、"**/.npmrc": true - 值必须是布尔
true,不是字符串"true",否则整条规则静默失效
想彻底禁用所有隐藏项(含 .git 和 .env),临时关掉「使用排除项」最简单
不需要改任何配置,打开全局搜索面板(Ctrl+Shift+F),右下角找那个斜杠盖住文件夹的图标(叫「使用排除项」),点一下把它关掉——立刻就能搜到 .git/config、.vscode/tasks.json、src/.env 里的内容。
这个开关临时禁用三类过滤:
- 硬编码隐藏目录规则(
.git、.vscode等) -
search.exclude里写的每一条 -
search.useIgnoreFiles加载的.gitignore规则
⚠️ 搜完务必点回来,否则下次搜 node_modules 会被一起扫,速度明显变慢。
search.exclude 配置写错就等于没写
search.exclude 是个对象,不是数组,也不是字符串列表。常见错误包括:
- 路径没加
**/前缀,比如写"node_modules": true→ 只排除根目录下的node_modules,子目录里无效 - Windows 下用了反斜杠:
"**\node_modules": true→ 完全不生效,必须用正斜杠**/node_modules - 值写成字符串:
"**/.env": "true"→ 规则被丢弃,VS Code 不报错也不提醒 - 在用户设置里写了
search.exclude,但工作区设置里又覆盖了它 → 工作区级优先级更高,用户级被忽略
files.exclude 和 search.exclude 是两套独立系统
这是最容易混淆的点:files.exclude 控制左侧资源管理器是否显示文件,search.exclude 控制 Ctrl+Shift+F 是否扫描该路径——改一个,另一个完全不受影响。
比如你只配了:
{ "files.exclude": { "**/.vscode": true } }
结果是:左侧看不到 .vscode 文件夹,但全局搜索依然搜不到它(因为硬编码规则还在起作用);而如果你只配了:
{ "search.exclude": { "**/.vscode": true } }
结果是:左侧仍能看到 .vscode,但搜索里跳过了它。
真正想“既不显示也不搜索”,得两条都配,且值都为 true。
search.exclude,.git 和 .vscode 目录照样不出现——想让它被搜到,唯一办法是显式写 "**/.git": false,而不是删掉那一行。


















