要让侧边栏只显示.py和.md文件,需在项目配置中用file_exclude_patterns排除所有非目标类型;必须使用.sublime-project文件配置,不可用全局设置,且排除列表需手动列全无关后缀。

Sublime Text 侧边栏**默认不显示被过滤的文件**,它没有“显示隐藏文件”开关——所谓“隐藏”,是靠 file_exclude_patterns 和 folder_exclude_patterns 主动排除实现的。你无法一键反向展开所有被过滤项,但可以精准控制哪些该留、哪些该藏。
怎么让侧边栏只显示 .py 和 .md 文件?(反向白名单思路)
Sublime 没有原生的“只显示”选项,但可用“排除一切非目标类型”的方式模拟白名单效果。这适合项目结构清晰、类型固定的场景(比如纯文档仓库或 Python 脚本集)。
- 必须基于项目配置(
.sublime-project),不能用全局设置,否则会误杀其他项目里的.js或.html - 手动列出所有你想屏蔽的后缀,漏掉一个,它就可能冒出来——比如忘了
*~(Vim 临时文件)或.swp(Swap 文件) - 通配符
*是贪婪匹配,*.min.js会匹配main.min.js,但min.js不会被匹配
{
"folders": [
{
"path": ".",
"file_exclude_patterns": [
"*.html", "*.css", "*.js", "*.json", "*.xml",
"*.png", "*.jpg", "*.pdf", "*.docx",
"*~", "*.swp", "*.tmp", "*.log"
]
}
]
}
为什么改了设置侧边栏还是空?(常见路径与权限陷阱)
侧边栏变空 ≠ 配置没生效,更可能是 Sublime 根本没读到目录内容。尤其在 macOS 或 WSL2 环境下容易踩坑。
-
folder_exclude_patterns里写了".*"—— 这会把当前目录下所有以点开头的文件夹(包括.git)全干掉,但若你项目根目录本身就是~/myproject,而~下还有.config、.local等,可能整个路径被误判为空 - 用
File → Open File…打开单个文件时,侧边栏天然无内容;必须用File → Open Folder…或已加载.sublime-project,否则folders配置根本不参与解析 - Linux/macOS 下挂载的网络盘、APFS 快照卷、或 WSL2 中跨发行版访问的路径(如
/mnt/c/Users/xxx),Sublime 默认不支持读取,侧边栏就会静默为空
全局设置 vs 项目设置:谁优先级更高?
项目设置永远覆盖全局设置。这是关键前提,否则你会纳闷“为什么我在用户设置里删了 node_modules,但前端项目里它还在”。
- 全局设置写在
Preferences → Settings右侧(用户设置),影响所有打开的文件夹 - 项目设置写在
Project → Edit Project打开的 JSON 里,只对当前.sublime-project生效 - 如果你同时在全局和项目中都设了
file_exclude_patterns,Sublime **不会合并两个数组**,而是直接用项目里的值——全局的那部分完全失效
所以想保留通用规则(如隐藏 .DS_Store、.log),又想为某项目额外加规则(如前端项目再加 dist/),就得把通用 + 特殊一起写进项目配置里。
临时查看被过滤的文件?别指望右键菜单
原生 Sublime Text **没有 “Show Hidden Files” 右键选项**。网上有些教程提到这个菜单,其实是依赖插件(如 SideBarEnhancements)添加的,不是内置功能。
- 想确认某个
.log文件是否真被过滤,最可靠方法是:按Ctrl+P(Cmd+P)打开快速跳转,输入文件名,它仍能搜到并打开——说明只是侧边栏不显示,文件本身完全可用 - 如果确实需要临时展开,唯一办法是注释掉项目配置里的
file_exclude_patterns行,保存后侧边栏立刻刷新;改完再取消注释即可 - 不要尝试修改
follow_symlinks或binary_file_patterns来“绕过”过滤——它们控制的是索引与搜索行为,不影响侧边栏显示逻辑
.env 或 config.yml 加进了 file_exclude_patterns,结果死活找不到它在哪——这时候翻一眼前面那个 JSON 配置,比重启十次都管用。










