folder_exclude_patterns必须写在项目设置的folders数组内,而非用户设置;其值为不含斜杠的目录名列表,如["node_modules", ".git"];全局设置不生效,且与file_exclude_patterns作用对象不同。

folder_exclude_patterns 必须写在项目设置里,不是用户设置
Sublime 的全局搜索和侧边栏显示是否跳过 node_modules、.git 这类目录,只认当前项目的 folder_exclude_patterns,改用户设置(Preferences → Settings)完全无效。
- 打开
Project → Edit Project,确保文件是合法 JSON,且外层有"folders"数组 -
folder_exclude_patterns必须放在每个folders对象内部,不能平级写在根上 - 错误写法:
{"folder_exclude_patterns": ["node_modules"]}—— 缺"folders"包裹,不生效 - 正确结构示例:
{ "folders": [ { "path": ".", "folder_exclude_patterns": ["node_modules", ".git", "dist"] } ] } - 路径名不带斜杠或通配符:
"node_modules/"或"**/node_modules"都无效,只写"node_modules"
搜索时临时跳过某些文件夹,不用改配置
想快速验证某个目录是否真被排除,或者临时搜一次 dist/ 里的内容,直接在搜索面板操作更灵活,且优先级高于项目配置。
- 按
Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(macOS)打开「Find in Files」 - 点右下角
Where输入框旁的按钮,展开过滤器 - 在
Exclude folders栏填node_modules|dist|.next,用竖线分隔,大小写敏感 - 或者直接在
Where框里写路径语法:.,-node_modules,-dist(逗号前后不能有空格) - 注意:
-node_modules是排除,node_modules/是显式包含——后者能绕过所有排除规则,适合查依赖源码
file_exclude_patterns 和 folder_exclude_patterns 别混用
名字像,但作用完全不同:一个管文件,一个管文件夹,写错位置就白配了。
-
folder_exclude_patterns:只跳过整个目录及其所有子内容,对.env、README.md这类文件没影响 -
file_exclude_patterns:只匹配文件名,比如"*.log"或".gitignore",对node_modules这种文件夹完全无效 - 侧边栏为空?可能是
folder_exclude_patterns误写了".*",把根下所有隐藏目录全干掉了 - Go To Anything(
Ctrl+P)也受这两个配置影响,但仅限 UI 显示和索引范围,不影响实际编辑
只显示某类文件?得靠反向排除
Sublime 没有“只显示 .py”的开关,但可以用 file_exclude_patterns 排除其他所有类型,逼近白名单效果。
- 例如只留 Python 和 Markdown:
{ "folders": [ { "path": ".", "file_exclude_patterns": ["*.html", "*.js", "*.css", "*.json", "*.png", "*~", "*.swp"] } ] } - 漏掉一种后缀(比如
*.tmp),它就会出现在侧边栏里 - 全局设置里加这些规则会影响所有项目,建议优先用项目级配置,避免前端项目里误杀
.pyc、Python 项目里漏掉.min.js - 临时要看被排除的文件?原生不支持右键“显示隐藏”,最稳的办法是注释掉项目配置里的
file_exclude_patterns,保存后侧边栏立刻刷新
node_modules,但项目里还写着,那它就依然被跳过——这个覆盖逻辑容易被忽略,也是排查失效时最先该检查的一环。











