files.exclude 必须用 */.pyc 等 minimatch 语法隐藏文件,*.pyc 或 .pyc 无效;需确保配置在工作区 .vscode/settings.json 中、路径大小写匹配、不与 search.exclude 混淆,且仅影响资源管理器UI,不影响功能。

files.exclude 怎么写才能隐藏 .pyc、.class 这类后缀文件
必须用 **/*.pyc 这种写法,*.pyc 或 .pyc 都不生效——前者只匹配根目录,后者根本不是合法 glob 模式。
VSCode 的 files.exclude 使用 minimatch 语法,不支持正则,只认 *(单层)、**(任意层级)、!(取反)。
-
**/*.pyc✅ 隐藏所有目录下的 .pyc 文件 -
src/**/*.js✅ 只隐藏 src 下及其子目录的 .js(适合保留 dist/main.js) -
**/*.min.js✅ 常用于过滤压缩产物,避免干扰源码阅读 -
!lib/utils.js✅ 例外规则:保留某个特定文件,但得放在通用规则之后
为什么加了 **/*.class 却还在资源管理器里看到 .class 文件
大概率是配置没落到工作区设置,或者路径大小写不匹配(尤其在 Linux/macOS 上)。
VSCode 优先读取项目根目录下的 .vscode/settings.json,全局设置会被它覆盖。右下角状态栏若显示「用户设置」,说明你改错了地方。
- 确认当前打开的是整个项目根目录,而不是某子文件夹(路径始终相对于工作区根)
-
Node_modules≠node_modules,大小写敏感时规则完全不触发 - 保存后已展开的父文件夹不会自动收起,手动折叠再展开,或按
Ctrl+R刷新窗口 - 别和
search.exclude混用——它只影响Ctrl+Shift+F搜索,对资源管理器无效
能否只隐藏某些目录下的特定后缀,比如只藏 build/ 下的 .js
可以,但得写明确路径前缀,不能依赖模糊匹配。
files.exclude 是逐条匹配的,没有“作用域限定”概念。想精准控制,就得靠 glob 的层级表达能力。
-
build/**/*.js✅ 隐藏 build 目录下所有层级的 .js -
dist/**/*.*❌ 危险!会意外匹配dist/config.json等非构建产物,慎用通配符组合 -
out/**✅ 常见输出目录,比out/**/*.*更安全 - 如果项目用了符号链接,
**/linked-dir/*.log不会生效——VSCode 不解析 symlink 路径
隐藏后会影响调试、Git 或 Ctrl+P 打开吗
完全不影响。这是纯 UI 层过滤,文件系统、Git 索引、语言服务、调试器全部照常工作。
你依然能:Ctrl+P 输入 utils.pyc 打开它,终端里 python -m py_compile 生成它,Git status 显示它被修改——只要没进 .gitignore,它就一直受版本控制。
真正容易被忽略的是交互习惯:侧边栏拖拽文件进终端、调试控制台、甚至拖进 Markdown 链接,这些操作在隐藏后就失效了。得切回快捷键或手动路径输入。


















