真正起作用的只有搜索面板右下角的where输入框,需以.-开头、-目录/格式、逗号加空格分隔;项目级排除须写入.sublime-project的folders对象内;全局设置folder_exclude_patterns对搜索无效。

全局搜索(Ctrl+Shift+F / Cmd+Shift+F)时还扫 node_modules 或 dist,不是插件没装好,也不是项目太大——是你根本没用对排除入口。真正起作用的只有搜索面板右下角的 Where 输入框,其他地方写的配置全不生效。
Where 输入框是唯一实时生效的排除方式
改了 folder_exclude_patterns 却还在 node_modules 里翻结果?那是因为它压根不控制 Find in Files 的扫描路径。只有 Where 框里的内容,才决定这次搜索到底扫哪些目录。
-
.必须写在最前,表示当前项目根目录 - 每个排除项以
-开头、以/结尾:-/node_modules/✅,-node_modules❌,-/node_modules❌ - 多个规则用英文逗号分隔,且逗号后**必须跟一个空格**:
., -/dist/, -*/__pycache__/✅;.,-/dist/❌ -
-/node_modules/只排除根级;想匹配所有层级(如packages/foo/node_modules/),得写-*/node_modules/ - 大小写敏感:Linux/macOS 下
Node_modules不会被node_modules匹配
项目级 folder_exclude_patterns 怎么写才有效
想每次打开项目都自动跳过某些目录,就得把规则写进 .sublime-project 文件,但结构错一点就完全不工作。
- 外层必须有
"folders"数组,哪怕只包含一个路径 -
"folder_exclude_patterns"必须放在每个"folders"对象内部,不能平级写在顶层 - 值是纯字符串数组,只写文件夹名:
"node_modules"✅,"node_modules/"❌,"**/node_modules"❌(Sublime 不支持双星号) - 路径是相对于
"path"字段的:如果"path": "src",要排除根目录的node_modules,就得写"../node_modules"
别往用户设置里硬塞 folder_exclude_patterns
在 Preferences → Settings – User 里加 folder_exclude_patterns,对 Find in Files 完全无效。它只影响侧边栏显示和 Ctrl+P 的索引范围。
- 全局设置容易误伤:Python 项目里排除
node_modules没意义,前端项目里漏掉venv又可能暴露敏感配置 - 某些插件(如
SideBarEnhancements)依赖完整目录结构,全局隐藏可能导致右键菜单异常 - 过度排除会让索引变“薄”,反而让
Ctrl+P漏掉本该出现的文件 - 真要全局统一过滤,建议只加通用项:
".git"、".DS_Store"、"*.log"
binary_file_patterns 会偷偷拖慢搜索
即使你已经用 Where 或 folder_exclude_patterns 排除了目录,搜索仍可能卡顿或漏结果——问题常出在 binary_file_patterns。
- Sublime 默认把
.wasm、.bundle、.zip等后缀识别为二进制,直接跳过内容扫描 - 如果你项目里有自定义文本格式(比如
.schema、.gql),又没从binary_file_patterns里移除,它就会被当成二进制忽略 - 检查方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示
Binary;如果是,就得把它从binary_file_patterns列表中删掉 - 这个设置影响所有搜索和
Ctrl+P,改完建议重启 Sublime 或至少重开所有面板
最常被忽略的一点:你改了 folder_exclude_patterns,却没关掉当前搜索面板再重开——Sublime 不会自动重载索引,旧面板里的搜索行为不会受新配置影响。











