Ctrl+Shift+F 的全局搜索仅受 Where 输入框规则控制,需写为 ., -/node_modules/ 等格式,folder_exclude_patterns 和 Exclude folders 对其无效,且 binary_file_patterns 可能跳过自定义文本文件。

Ctrl+Shift+F 还在扫 node_modules?那是没用对 Where 输入框
Sublime Text 的全局搜索(Ctrl+Shift+F)默认全量遍历物理路径,folder_exclude_patterns 对它完全无效——改了也白改。真正起作用的,只有搜索面板右下角那个 Where 输入框,且规则写错一个空格就失效。
-
.表示当前项目根目录,必须写,不能省略 - 排除项必须以
-开头,结尾带正斜杠:-/node_modules/✅,-node_modules❌,-/node_modules❌ - 多个规则用英文逗号分隔,逗号后必须跟一个空格:
., -/dist/, -*/__pycache__/✅;.,-/dist/❌ -
-*/node_modules/匹配所有层级的node_modules;-/node_modules/只匹配根目录下 - Linux/macOS 大小写敏感:
-/Node_modules/不会排除node_modules
为什么 .sublime-project 里写了 folder_exclude_patterns 还是搜出第三方代码
因为 folder_exclude_patterns 只在项目加载时影响索引和侧边栏,不干预 Ctrl+Shift+F 的实时磁盘扫描。它只对 Ctrl+P、Ctrl+Shift+R 和文件树显示起效。想让它间接“减少干扰”,得配合禁用索引或重开项目——但不如直接用 Where 简单可靠。
- 写进
.sublime-project是为了Ctrl+P更快、侧边栏更干净,不是为搜索服务 - 结构必须正确:
"folder_exclude_patterns"是每个"folders"对象的子字段,不是平级字段 - 值只写 basename:
"node_modules"✅,"node_modules/"或"./node_modules"❌ - 如果
"path": "src",要排除根目录的node_modules,得写"../node_modules",不是"node_modules"
Exclude folders 栏和 Where 输入框根本不是一回事
搜索面板里那个竖线分隔的 Exclude folders 输入框,只按文件夹名模糊匹配,不看路径层级,也不支持通配符。填 node_modules|.git|dist,它会干掉 src/node_modules、packages/foo/.git 所有同名文件夹——无法精准控制,比如你只想跳过根级 dist 却保留 src/dist,它做不到。
-
Exclude folders不解析路径,../node_modules或src/node_modules这类写法无效 - 大小写敏感:Linux/macOS 下
Node_modules不会被node_modules匹配 - 它和
Where规则并存时,Where优先级更高,但两者机制不同,混用容易误判
binary_file_patterns 悄悄把你的 .gql/.schema 文件当二进制跳过
即使 Where 和 folder_exclude_patterns 都设对了,搜索仍可能漏结果——问题常出在 binary_file_patterns。Sublime 默认把 .wasm、.bundle、.zip 等后缀识别为二进制,直接跳过内容扫描。
- 检查方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示
Binary - 自定义文本格式(如
.gql、.schema)必须从binary_file_patterns列表中移除 - 这个设置影响所有搜索和
Ctrl+P,改完建议重启 Sublime 或至少重开所有面板
Where 输入框的语法容错率极低,漏空格、多斜杠、用反斜杠、结尾没加 /,整条规则都会静默失效——它不会报错,只会假装没看见。


















