.gitignore仅控制Git版本跟踪,不控制VSCode资源管理器显示;files.exclude才是隐藏文件的唯一有效配置,需用/前缀匹配任意层级的.DS_Store、.env等文件。

全局隐藏系统配置文件,必须改用户级 files.exclude,不能只靠 .gitignore 或图形界面点几下——后者不生效、不覆盖子目录、也不管 macOS/Windows 混合场景。
为什么 .gitignore 不能替代 files.exclude
很多人以为把 .DS_Store、.env、.prettierrc 加进 .gitignore,VSCode 就会自动在侧边栏里隐藏它们。实际不是:
-
.gitignore只影响 Git 行为和部分扩展(如 GitLens)的读取逻辑,files.exclude才是资源管理器显示的唯一开关 -
.gitignore不支持**/._*这类深度通配,也无法匹配根目录外的.vscode或Thumbs.db - 即使启用了
"git.ignoreLegacyExclude": false,VSCode 也只对被 Git 显式忽略的路径做“弱隐藏”,比如仍会显示.DS_Store(Git 默认不 track 它)
用户级 files.exclude 应该加哪些规则
打开命令面板(Cmd+Shift+P / Ctrl+Shift+P),搜 Preferences: Open Settings (JSON),直接编辑用户级 settings.json。推荐填入以下内容(已适配 macOS + Windows 混用):
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
{
"files.exclude": {
"**/.DS_Store": true,
"**/._*": true,
"**/Thumbs.db": true,
"**/*.pyc": true,
"**/__pycache__": true,
"**/.env": true,
"**/.git": true,
"**/.vscode": true,
"**/node_modules": true
}
}
-
"**/.DS_Store"和"**/._*"是 macOS Finder 拷贝时生成的元数据,必须用**/前缀才能穿透任意子目录 -
"**/.env"能覆盖项目根、src/、config/下所有环境文件;只写".env"只能隐藏根目录下的 -
"**/node_modules"是通用惯例,但注意:它不会隐藏根目录同级的node_modules,如需兼顾,可额外加一行"node_modules": true
别踩这些坑:路径写错、范围失控、误配成 search.exclude
常见失效原因几乎都集中在这三类:
- 把
files.exclude错写成search.exclude:后者只让Ctrl+Shift+F搜索跳过,资源管理器照常显示 - 路径漏掉
**/前缀,比如写".DS_Store": true→ 只隐藏根目录下的,子目录里的一律无效 - 用了非法 glob,例如
"*.DS_Store"(VSCode 不认前导*)、"dist/**"(缺少起始通配符,解析失败) - 在工作区
.vscode/settings.json里配了,却期望全局生效——工作区设置只对当前项目起作用
隐藏后文件还在,但某些地方“突然又出现了”
files.exclude 只管资源管理器,其他视图不受限:
- 终端(Terminal)里
ls -a照常看到所有文件 - 命令面板(
Ctrl+P)的文件跳转仍能搜到被隐藏的.env或.prettierrc—— 这是设计使然,不是 bug - Git 扩展的“源代码管理”面板也会显示
.gitignore里的条目,哪怕它们已被files.exclude隐藏 - 某些插件(如 ESLint、Prettier)会主动读取
.eslintrc.js等配置文件,因此其状态栏提示、错误高亮仍存在
如果你发现某个 ._xxx 文件没被隐藏,大概率是它藏在带空格或 Unicode 字符的路径里(比如 my project/sub/._file),此时可补一条更保守的规则:"**/._*/**": true。

















