sublime项目搜索过滤仅folder_exclude_patterns(须在.sublime-project的folders数组内正确配置)和where输入框有效,其他设置基本无效;where语法优先级最高,支持临时精准控制范围。

Sublime 的项目搜索过滤只有 folder_exclude_patterns 和 Where 输入框两种可靠方式,其他设置(如用户级 folder_exclude_patterns、file_exclude_patterns)对「Find in Files」基本无效。
folder_exclude_patterns 必须写在 .sublime-project 里才影响搜索
这个配置只在项目设置(Project → Edit Project)中生效,且结构必须严格:外层有 "folders" 数组,"folder_exclude_patterns" 是每个 "folders" 对象的子字段。
- 正确示例:
{ "folders": [ { "path": ".", "folder_exclude_patterns": ["node_modules", ".git", "dist"] } ] } - 错误写法:
{"folder_exclude_patterns": ["node_modules"]}—— 缺"folders"包裹,完全不生效 - 路径名不能带斜杠:
"node_modules/"或"./node_modules"都无效,只写"node_modules" - 它只匹配文件夹 basename,不递归识别嵌套路径(如
"packages/*/node_modules"要单独加一行) - 修改后需关闭并重开项目,或至少关闭所有搜索面板再重新打开
Ctrl+Shift+F
Where 输入框是唯一能临时/精准控制搜索范围的方式
打开 Ctrl+Shift+F 后,右下角 Where 框支持显式路径语法,优先级高于所有配置项,适合调试或绕过默认排除。
- 排除目录:
., -/node_modules/, -/dist/(逗号前后不能有空格,/表示目录层级) - 包含被隐藏目录:
node_modules/或./logs/—— 加/更安全,避免匹配同名文件 - 混合使用:
src/, node_modules/react/表示只搜这两个路径,忽略其他所有规则 - 大小写敏感:
Node_modules不会被node_modules排除(Linux 下尤其注意)
别碰 binary_file_patterns 来解决“搜不到”问题
如果你改了 folder_exclude_patterns 却发现搜索结果变少甚至为空,大概率不是它的问题,而是 binary_file_patterns 在偷偷跳过你认为是文本的文件。
- Sublime 默认会把
.wasm、.bundle、.zip等识别为二进制,直接跳过内容扫描 - 若你项目里有自定义文本格式(比如
.schema或.gql),又没加进binary_file_patterns的反向白名单,就可能被误判 - 检查方法:随便打开一个疑似被跳过的文件,看右下角状态栏是否显示
Binary—— 如果是,就得把它从binary_file_patterns里删掉
真正容易被忽略的是:folder_exclude_patterns 和 Where 语法互不兼容。前者只认 basename,后者要带路径分隔符;前者写错位置就彻底失效,后者输错一个斜杠就变成匹配文件而非目录。调搜索时,先看 Where 框有没有残留旧规则,再确认 .sublime-project 里是不是真写了 "folders" —— 这两点卡住 90% 的人。











