sublime的where框填多个路径需用英文逗号分隔,如src/, tests/或./src, *.ts, -node_modules/;必须用正斜杠、排除项须带尾部/,且不支持shell嵌套通配符。

Where 框里怎么填多个路径
Sublime 的 Where 输入框不支持 shell 风格的嵌套通配符(比如 src/**/api.js),但支持用逗号分隔多个**并列路径或规则**,每条规则独立生效。填错格式会导致只搜到一部分、漏掉目标文件,甚至匹配到不该扫的目录。
-
.表示当前项目根目录(必须已通过File → Open Folder…加载) -
src/, tests/表示同时搜索src/和tests/下所有子目录(自动递归) -
./src, *.ts, -node_modules/是合法组合:先限定路径前缀,再按后缀过滤,最后排除目录(注意-node_modules/的斜杠不能省) - 不要写
src/*, tests/*——*在Where中无 glob 含义,会被当作字面量路径,基本搜不到东西 - Windows 用户也必须用正斜杠
/,src\utils会失效
为什么搜不到某些路径下的文件
常见原因是路径规则之间存在隐式冲突,或者被全局设置静默过滤。Sublime 会按顺序应用 Where 规则,但最终是否扫描某个文件,还取决于 file_exclude_patterns 和 folder_exclude_patterns 的设置。
- 即使
Where填了src/, lib/,如果file_exclude_patterns里有"*.log",那src/debug.log就不会出现在结果里 -
-node_modules/必须写成带尾部/的形式;写成-node_modules会误杀my_node_modules_config.js - 添加多个文件夹到同一项目(
Project → Add Folder to Project…)后,Where留空 ≠ 搜全部 —— 它默认只扫第一个添加的根目录,其余需显式写出路径 - 右键侧边栏文件夹选
Find in Folder,可避免手动输路径出错,Where会自动填入绝对路径,比如/Users/me/project/src/
多路径搜索时正则和文件类型怎么配合
Where 控制“在哪搜”,File Types 控制“搜哪些后缀”,两者是 AND 关系。但 File Types 不支持复杂语法,只能用简单 glob,且不能和 Where 中的文件类型规则混用。
-
Where:src/, tests/+File Types:*.js, *.ts→ 只扫src/和tests/下的.js和.ts文件 - 不要在
Where里重复写*.js,否则可能触发异常解析(如把*.js当作路径名的一部分) - 勾选
Use Regular Expressions后,查找内容本身要用 PCRE 语法,但Where字段仍不支持正则——它始终是路径前缀匹配 - 想精确匹配函数定义?得靠
\bfetchData\b\(这类正则,而不是指望Where帮你筛语义
替换后文件没保存是最大隐患
多路径搜索后的 Replace All in Files 不会自动保存任何文件,也不会标记为已修改。一旦切换标签页、点击其他面板,或意外关闭窗口,所有改动就丢了,且无提示。
- 必须手动执行
Ctrl+K Ctrl+B(Windows/Linux)或Cmd+K Cmd+B(macOS)触发Save All - 替换前务必先点
Find All,确保底部Find Results面板展开全部匹配项;否则Replace All in Files可能只作用于当前可见的几条 - 跨多个路径批量替换前,强烈建议先
git stash或git checkout -b refactor-branch—— Sublime 不提供撤销跨文件替换的功能
File → Open Folder… 确认项目加载 → 右键目标文件夹点 Find in Folder 填准 Where → Find All 预览 → 替换 → Ctrl+K Ctrl+B。中间少一步,都可能白忙活。











