根本原因是未在Where输入框写排除规则;项目级folder_exclude_patterns和全局设置对Ctrl+Shift+F完全无效,仅影响侧边栏和Ctrl+P;Where输入框是唯一实时生效的搜索排除入口,语法为., -/node_modules/, -/dist/等,逗号后必须加空格。

Find in Files 搜索卡顿、结果混杂第三方代码,根本原因不是项目太大,而是你没在 Where 输入框里写排除规则。 项目级 folder_exclude_patterns 和全局设置对 Ctrl+Shift+F 完全无效,它们只影响侧边栏和 Ctrl+P 索引——这点被 90% 的用户误解。
Where 输入框是唯一实时生效的搜索排除入口
打开 Ctrl+Shift+F 后,右下角的 Where 输入框才是控制本次搜索路径的唯一位置。它优先级最高,改完回车立刻生效,不重启、不重载、不刷新索引。
-
.表示当前项目根目录(必须已打开文件夹或项目) -
-/node_modules/排除根目录下的该文件夹;-*/node_modules/排除所有层级(如packages/foo/node_modules/) - 多个规则用英文逗号分隔,逗号后必须加空格:
., -/dist/, -/build/, -*/__pycache__/✅ - 错误写法:
-node_modules(缺斜杠,会误匹配文件)、-/node_modules(末尾缺斜杠,语义失效)、,-/dist/(逗号后没空格,后续规则全丢) - 大小写敏感:Linux/macOS 下
Node_modules不会被node_modules排除
.sublime-project 中的 folder_exclude_patterns 必须嵌套正确才起作用
想让排除“永久”生效(比如每次打开这个项目都自动跳过 node_modules),得把配置写进 .sublime-project 文件,但结构错一点就完全不工作。
-
"folders"是必须的外层数组,哪怕只配一个路径 -
"folder_exclude_patterns"必须写在每个"folders"对象内部,不能放在顶层或"settings"下 - 路径只写文件夹 basename,不带斜杠:
"node_modules"✅;"node_modules/"或"./node_modules"❌ - 如果
"path": "src",那要排除根目录的node_modules,就得写"../node_modules" - 修改后需关闭并重开搜索面板(或按 Esc 关掉再 Ctrl+Shift+F),否则看不到效果
binary_file_patterns 会偷偷拖慢搜索,即使目录已排除
即使你已用 Where 或 folder_exclude_patterns 排除了 node_modules,搜索仍可能卡顿或漏结果——问题常出在 binary_file_patterns。
- Sublime 默认把
.wasm、.bundle、.zip等后缀识别为二进制,直接跳过内容扫描 - 如果你项目里有自定义文本格式(比如
.schema、.gql),又没从binary_file_patterns移除,它就会被当成二进制忽略 - 检查方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示
Binary;如果是,就得把它从binary_file_patterns列表中删掉 - 这个设置影响所有搜索和 Ctrl+P,改完建议重启 Sublime 或至少重开所有面板
最常被忽略的一点:Where 输入框里的规则是「显式路径合并」,它能绕过所有 folder_exclude_patterns 限制。比如你想搜全部但必须包含 logs/,就写 ., logs/——不是靠取消排除,而是靠主动加入路径。


















