files.exclude 是唯一能隐藏文件树中编译产物的配置项,需在项目级 .vscode/settings.json 中用 glob 模式(如 "*/.exe")精确设置,错误前缀或位置会导致失效,且隐藏不等于删除,不影响终端运行与 Git 提交。

files.exclude 是唯一生效的配置项
想让 .exe、__pycache__、dist 这类编译产物从左侧文件树彻底消失,必须改 files.exclude,不是 search.exclude,也不是 gitignore。后者只影响搜索或 Git 提交,对资源管理器毫无作用。
常见错误现象:
- 配了
"search.exclude": {"**/*.exe": true},但.exe文件还在侧边栏里 - 在设置界面搜 “exclude” 时误点了
Search: Exclude的开关,以为全局隐藏了 - 直接删掉用户设置里的
"**/.*": true,结果所有点文件(包括.vscode)都冒出来了,反而更乱
工作区配置优先于用户配置
如果你只想在当前项目里隐藏编译产物(比如 C++ 项目要藏 .exe 和 .o,Python 项目要藏 __pycache__),就得把规则写进项目根目录下的 .vscode/settings.json,而不是用户级设置。
操作步骤:
- 确保项目根目录下有
.vscode文件夹;没有就手动建一个 - 在其中新建或编辑
settings.json,内容必须是完整 JSON 对象,不能只写单个字段 - 填入类似这样的结构:
{ "files.exclude": { "**/*.exe": true, "**/*.o": true, "**/__pycache__": true, "**/*.pyc": true } } - 保存后,资源管理器会立刻刷新——不需要重启 VSCode
glob 模式写法必须带 **/ 前缀
files.exclude 的路径匹配基于 glob,不支持相对路径简写。写错前缀会导致规则完全不生效。
正确写法示例:
-
"**/*.exe"→ 匹配任意层级的.exe文件 -
"**/__pycache__"→ 匹配任意位置的同名文件夹(注意没加/**,因为只隐藏文件夹本身,不递归其内容) -
"**/node_modules"→ 隐藏所有子目录下的node_modules(但不包括根目录直下的,如需覆盖,额外加"node_modules": true)
错误写法示例:
-
"*.exe"→ 只匹配根目录下的.exe,深层目录无效 -
"dist/**"→ VSCode 不识别这种非标准开头,直接忽略 -
"src/dist"→ 范围太窄,漏掉packages/cli/dist等路径
隐藏 ≠ 删除,也不影响终端运行
所有通过 files.exclude 隐藏的文件,物理上毫发无损,只是 VSCode 主动过滤掉了它们的显示。
这意味着:
- 你在终端里仍可正常执行
./main.exe或python -m mypkg - 调试器照样能加载
.pdb或.so文件(只要路径没写错) - Git 依然会按
.gitignore决定是否提交,和files.exclude无关 - 如果某天需要临时查看这些文件,回到
.vscode/settings.json把对应行注释掉或删掉,保存即恢复
最易被忽略的一点:VSCode 默认启用的 "**/.*": true 会连 .env、.gitignore 一起藏掉。如果你依赖这些点文件,别全局删这一条,而是用更精确的规则替代,比如只写 "**/.DS_Store": true 和 "**/.git/**": true。











