files.exclude是唯一控制资源管理器显示的配置项,需在工作区.vscode/settings.json中用"**/.env": true等glob模式精确匹配任意层级点文件,避免误配search.exclude或写错路径;它不影响ctrl+p搜索、git状态及终端操作。

files.exclude 是唯一能控制资源管理器显示的配置项
想让 .env、.eslintrc.js、.prettierrc 这类配置文件从左侧资源管理器里彻底消失,必须用 files.exclude,不是 search.exclude,也不是 git.ignoreLegacyExclude。后者只影响搜索或 Git 面板,对侧边栏完全无效。
常见错误现象:
— 在设置里搜 “exclude”,点了 Search: Exclude 的 + 号加了 .env,结果资源管理器照常显示
— 把规则写进用户级 settings.json,但项目里已有 .vscode/settings.json,导致规则被覆盖
— 写成 ".env": true,没加 **/ 前缀,结果只隐藏根目录下的 .env,子目录里的依然可见
正确做法是:在项目根目录的 .vscode/settings.json 中明确声明 files.exclude 对象,例如:
{
"files.exclude": {
"**/.env": true,
"**/.eslintrc.*": true,
"**/.prettierrc": true,
"**/.gitignore": true
}
}
匹配点文件要写 **/.xxx,不能只写 .xxx 或 *.xxx
VSCode 的 files.exclude 使用 minimatch glob 语法,不支持正则,也不接受裸文件名。写 ".env" 或 "*.env" 都不会生效——前者被当作文本字面量(无通配含义),后者只匹配根目录下以 .env 结尾的文件,且漏掉 .env.local 这类变体。
真正有效的写法必须带 **/ 前缀,表示“任意层级”:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
-
"**/.env"→ 隐藏所有.env文件(含src/.env、config/.env) -
"**/.eslintrc.*"→ 匹配.eslintrc.js、.eslintrc.cjs、.eslintrc.yaml -
"**/.*rc"→ 可批量隐藏.bashrc、.zshrc等(但慎用,可能误伤)
注意:"**/.*" 会隐藏所有以点开头的文件(包括 .git 目录),但 VSCode 默认已内置该规则;若你手动加了,反而可能干扰某些扩展(如 GitLens)对隐藏文件的识别。
工作区设置优先于用户设置,改错位置就白配
VSCode 加载配置时严格按优先级:工作区(.vscode/settings.json) > 用户设置 > 默认设置。如果你在全局设置里加了 files.exclude,但当前打开的是一个带 .vscode 文件夹的项目,那你的全局规则根本不会起作用。
验证和操作建议:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),运行Preferences: Open Workspace Settings (JSON) - 确认右下角状态栏显示 “Workspace” 而非 “User”
- 如果
.vscode/settings.json已存在,直接在里面补全files.exclude字段,不要只写单个键值对(比如别只写"**/.env": true,而要包在完整对象里) - 保存后无需重启 VSCode,但已展开的父文件夹可能需要手动折叠再展开一次才能刷新
隐藏后 Ctrl+P 仍能搜到,这是设计使然
files.exclude 只过滤资源管理器的视觉渲染,不影响底层文件可访问性。这意味着:
-
Ctrl+P快速打开仍能搜到被隐藏的.env文件(除非你同步配了search.exclude) - 终端里
ls -a、Git 状态、调试器跳转定义,全部不受影响 - SCM 面板中
.env的修改图标依然显示,因为 Git 跟踪与 VSCode 显示是两套逻辑
真正容易被忽略的是交互迁移:以前靠拖拽 .env 到终端执行 source,隐藏后就得改用 Ctrl+P 打开再复制路径——清爽是清爽了,但得适应新习惯。










