直接修改 files.exclude 即可隐藏文件,但必须使用正确的 glob 模式且路径相对于工作区根目录;常见错误包括误用相对路径、正则或宽泛模式导致侧边栏空白。

直接改 files.exclude 就行,但必须写对 glob 模式,否则整个侧边栏可能变空。
为什么 files.exclude 改了却没隐藏?
最常见原因是路径写法错误:VS Code 的 files.exclude 不认相对路径、不认正则,只认 glob 模式,且所有路径都相对于工作区根目录。
-
"node_modules"只匹配项目根下的node_modules,子目录里的不会被隐藏 -
"**/node_modules"才能递归匹配任意层级,但注意它不包含根目录本身(VS Code 2026 年行为) - 稳妥写法是同时加两条:
"node_modules": true和"**/node_modules": true - 含空格的路径如
my folder,直接写"my folder": true,不要加引号或转义 - 写成
"**/*"或"**"这类宽泛模式,会导致资源管理器完全空白——不是崩溃,是全被过滤掉了
敏感文件该用 files.exclude 还是 search.exclude?
二者完全独立,不能互相替代:
-
files.exclude控制左侧资源管理器、Ctrl+P文件列表、新建/保存路径提示是否显示 -
search.exclude只影响Ctrl+Shift+F全局搜索范围,和侧边栏无关 - 想让
.env在侧边栏消失,必须配files.exclude;如果只配search.exclude,它依然会出现在左边 - 两者语法一致,但得分别写一遍,没有自动同步机制
团队协作时,配置应该放用户级还是工作区级?
推荐统一放在项目根目录的 .vscode/settings.json 中:
- 工作区级设置(即
.vscode/settings.json)优先级高于用户级,且只对当前项目生效,避免污染其他工程 - 例如,添加以下内容即可隐藏常见敏感项:
{ "files.exclude": { "**/.env": true, "**/id_rsa": true, "**/.git": true, "**/.DS_Store": true } } - 语言专属排除也支持,比如只在 JavaScript 项目中隐藏
lib/**:"[javascript]": { "files.exclude": { "lib/**": true } },注意语言标识符必须全小写 - 插件(如 GitLens、ESLint)可能绕过
files.exclude主动读取文件,验证是否真隐藏,建议先禁用扩展再确认
真正容易被忽略的是:改完 files.exclude 后,VS Code 不再需要重启就能生效(2026 年起已优化),但如果你发现没变化,先检查 glob 是否写错,而不是急着关重启。另外,files.exclude 只影响显示逻辑,被隐藏的文件仍可被编辑、Git 提交、调试器加载——它不是权限控制,只是视觉过滤。











