直接添加两条规则即可让.DS_Store和._在VSCode资源管理器中彻底隐藏:在settings.json的files.exclude中加入"/.DS_Store": true和"/._": true,保存后立即生效,无需重启或关闭窗口。

直接加两条规则就能让 .DS_Store 和 ._* 从资源管理器里彻底消失,不用重启、不删文件、不影响 Git 或系统行为。
files.exclude 是唯一靠谱的入口
VSCode 的文件显示逻辑只认 files.exclude 设置,不是系统隐藏属性,也不是 .gitignore(虽然它会自动读取 .gitignore,但优先级低、不支持通配符嵌套)。图形界面里点“添加模式”看似方便,但对 **/._* 这类深度匹配容易漏掉子目录,必须手动写进 settings.json 才稳。
- 打开命令面板(
Cmd + Shift + P/Ctrl + Shift + P),搜Preferences: Open Settings (JSON) - 找到或新建
"files.exclude"字段,补上这两行:"**/.DS_Store": true, "**/._*": true
- 保存后立即生效,不用关项目、不用重开窗口
用户级 vs 工作区级:选哪个?
如果你主要在 macOS 上开发,或者经常插 U 盘、跨平台协作,建议设在用户级(全局);如果只是某个项目里有大量 .DS_Store(比如从 Finder 拷贝来的资料目录),就写进项目根目录下的 .vscode/settings.json。
- 用户级设置:影响所有打开的文件夹,路径是
~/Library/Application Support/Code/User/settings.json(macOS) - 工作区级设置:只对当前项目生效,且会覆盖用户级同名配置,适合定制化强的工程(如 Linux kernel、U-Boot)
- 别混用:两个地方都写了
"**/.DS_Store": true不会冲突,但工作区级优先级更高
为什么 search.exclude 不管用?
search.exclude 只控制「全局搜索结果里要不要出现」,不影响左侧资源管理器的显示。你看到 .DS_Store 还在侧边栏晃悠,说明只动了 search.exclude——这是最常见的误操作。
-
search.exclude适合屏蔽node_modules、build/这类大目录,避免搜索卡顿 -
files.exclude才是管「看不看得见」的开关,二者职责不同,不能互相替代 - 顺手把
"**/*.pyc"、"**/Thumbs.db"也加进去,Windows/macOS 混用时更省心
真正麻烦的是那些已经生成的 ._* 文件——它们可能藏在深层子目录甚至符号链接里,**/._* 能覆盖绝大多数情况,但如果你发现某一层没被隐藏,大概率是路径里有空格或特殊字符导致 glob 匹配失败,这时候得换用更保守的模式,比如 "**/._*": true 前面加个 "**/._*/**": true 补漏。


















