Sublime Text在特定目录全局搜索必须在Where输入框手动填写路径,如src/或packages/api-client/**/.ts;填错格式、大小写或斜杠方向会导致结果为空或错乱,且仅当左下角显示项目路径时Where才生效。

Sublime Text 在特定目录中全局搜索,必须手动填 Where 路径,不能依赖侧边栏选中或留空;填错格式、大小写或斜杠方向,结果就为空或错乱。
Where 框怎么填才真正限定到某个子目录
Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)调出搜索面板后,Where 是唯一控制物理扫描范围的字段,它不认正则,只认 Shell glob 语法:
-
src/:搜src/下所有层级的文件(自动递归,不用写src/**/*) -
packages/api-client/**/*.ts:只搜该路径下所有.ts文件,**表示任意深度子目录 -
./legacy/**:开头的./表示相对当前项目根目录,legacy必须是根目录下的直接子目录 - 多个路径用英文逗号分隔:
src/, tests/, utils/;排除用-开头:src/, -src/tests/ - 别写
/src/或./src/(Windows 下/可能被当字面量处理),也别写src(缺斜杠不递归)
为什么填了路径还是搜不到?三个硬性前提
搜不到不是因为路径写得不够花哨,而是基础条件没满足:
- 左下角状态栏必须显示项目路径(如
~/my-project/),没显示 → 没进项目模式 →Where字段无效 - 路径区分大小写:Linux/macOS 下
Src/和src/是两个路径;Windows 虽文件系统不敏感,但 Sublime 的 glob 引擎仍按字面匹配 -
Where值是相对于「已打开的项目根目录」,不是你当前工作目录或终端 pwd;用File → Open Folder…打开的是哪一层,Where就从哪一层算起
如何排除 node_modules 等干扰目录
folder_exclude_patterns 配置对 Ctrl+Shift+F 完全无效——它只影响索引和 Ctrl+P。真正起效的只有 Where 框里的实时排除规则:
- 正确写法:
., -node_modules/, -dist/, -build/(逗号后必须跟空格,-后必须跟斜杠) - 错误写法:
-node_modules(缺斜杠)、, -node_modules/(逗号前多空格)、-/node_modules/(开头多斜杠) - 通配排除:
-*/__pycache__/排除所有层级的__pycache__,-/tmp/只排除根级tmp - 如果搜着卡死或内存暴涨,八成是忘了加
-node_modules/,Sublime 默认会扫进去
搜代码时容易误匹配的典型场景
比如想查所有 fetch 调用,但结果里混着注释、字符串、变量名,是因为没设约束:
- 勾选
Whole Word:避免fetchData、refetch被命中 - 开启
Regular Expression并写\bfetch\s*\(\s*:\b锚定单词边界,\s*容忍空格换行 - 限定文件类型:
src/**/*.js, src/**/*.ts,避免在README.md或package.json里搜到字符串 - 若目标函数可能跨行(如
fetch(\n url,\n options\n)),正则需加(?s)前缀:(?s)\bfetch\s*\(.*?\)
最常被忽略的一点:Where 框里填的不是“我要找的文件”,而是“我在哪些路径下翻找内容”——它不解析文件名,也不支持 Button.vue 这种精确匹配。想按文件名跳转,该用 Ctrl+P,不是 Ctrl+Shift+F。

















