where输入框是唯一实时生效的排除方式:需以.表示根目录,排除项以-/开头并结尾带/,多规则用英文逗号加空格分隔;folder_exclude_patterns仅影响侧边栏和ctrl+p,对find in files无效。

Where 输入框是唯一实时生效的排除方式
Sublime 的 Find in Files(Ctrl+Shift+F)默认扫描整个项目,但 folder_exclude_patterns 在项目或用户设置里**完全不影响这次搜索**。真正能立刻跳过 node_modules、dist 等目录的,只有打开搜索面板后右下角的 Where 输入框。
语法必须严格:以 . 表示当前项目根目录;每个排除项以 - 开头,后接路径,结尾带 /;多个规则用英文逗号分隔,且逗号后**必须跟一个空格**。
-
., -/node_modules/, -/dist/→ 排除根目录下的这两个文件夹 -
., -*/__pycache__/→ 排除所有层级的__pycache__(包括src/utils/__pycache__) -
-node_modules或-node_modules/→ 不生效(缺开头的/) -
,-/dist/→ 无效(逗号后没空格)
.sublime-project 中 folder_exclude_patterns 的写法陷阱
想让排除规则“每次打开这个项目都自动生效”,得把配置写进 .sublime-project 文件,但它只在 folders 数组内部才起作用,且路径是相对于 folders.path 的,不是相对于项目文件本身。
-
"folder_exclude_patterns": ["node_modules", ".git", "dist"]✅ —— 只写文件夹名,不加/或./ -
"node_modules/"或"**/node_modules"❌ —— Sublime 不识别斜杠结尾和双星号 - 如果
"path": "src",而node_modules在项目根目录,则必须写"../node_modules" - 修改后需关闭并重开搜索面板(按
Esc再按Ctrl+Shift+F),否则看不到效果
binary_file_patterns 会偷偷让搜索变慢或漏结果
即使你已经用 Where 或 folder_exclude_patterns 排除了目录,搜索仍可能卡顿、返回空结果——问题常出在 binary_file_patterns。Sublime 默认把 .wasm、.bundle、.zip 等后缀识别为二进制,直接跳过内容扫描。
- 检查方法:打开一个疑似被跳过的文本文件(比如
schema.gql),看右下角状态栏是否显示Binary - 若显示
Binary,说明它被binary_file_patterns拦住了,得把它从该列表中删掉 - 这个设置影响所有搜索和
Ctrl+P,改完建议重启 Sublime 或至少重开所有面板
全局设置 folder_exclude_patterns 实际上不控制 Find in Files
在 Preferences → Settings(用户设置)里加 folder_exclude_patterns,看起来省事,但其实它只影响侧边栏显示和 Ctrl+P 的索引范围,对 Find in Files 完全无效。更麻烦的是,不同项目结构差异大,全局排除 node_modules 可能在查某个库源码时让你“搜不到”,误以为代码不存在。
真要全局过滤,只建议加极通用、几乎不会含源码的项,比如:".git"、".DS_Store"、"*.log"。其余一律交给 Where 输入框或项目级 .sublime-project 控制。











