sublime的where框需手动填写路径,留空会导致行为不稳定;正确用法是填入前缀如src/或绝对路径如/users/xxx/src,排除目录须用-/xxx/格式。

Where输入框必须手动填路径,留空不等于搜整个项目
Sublime 的 Ctrl+Shift+F(macOS 为 Cmd+Shift+F)默认不会自动把侧边栏高亮的文件夹当搜索根目录——它只认你明确写进 Where 输入框里的路径。留空时行为不稳定:可能退化为只扫已打开文件,也可能触发低效全盘扫描(尤其在含 node_modules 的项目中)。
正确做法是主动填写:
-
.表示当前项目根目录(必须是单个英文点,不是./或./) -
src/表示所有路径以src/开头的文件(自动包含src/api/、src/components/Button.vue等) -
packages/foo/只搜这个子目录,不递归到同级其他packages/ - 多个路径用英文逗号分隔:
src/, tests/, config/
填 src/ 就够了,别加 ** 或 ./
Where 框不是 shell,也不是正则引擎,它做的是路径前缀匹配。写 src/ 就表示“所有相对路径以 src/ 开头的文件”,天然覆盖所有子层级,不需要 src/**、./src/ 或 src/*。
常见错误写法及后果:
-
src/**:Sublime 不识别双星号,当作字面量,搜不到任何东西 -
./src/:开头的./会被当作文本前缀,实际去匹配路径中含./src/的文件(几乎不存在) -
src(无尾部/):可能误匹配src2/或my-src/ -
/src/(开头带斜杠):被当绝对路径字面量,在 macOS/Linux 下等价于根目录下的/src/,通常不是你想要的
排除目录必须用 -/xxx/ 格式,且逗号后要空格
想在查 src/ 的同时跳过 src/node_modules/?不能靠 folder_exclude_patterns,它只影响索引,不影响本次搜索。唯一实时生效的方式是写进 Where:
- 正确:
src/, -/src/node_modules/(注意-/开头、/结尾、逗号后空格) - 错误:
src/, -src/node_modules(缺尾部/,会匹配失败) - 错误:
src/, -/src/node_modules(缺尾部/,层级判断失效) - 错误:
src/, -/node_modules/(这只会排除项目根级的node_modules/,对src/node_modules/无效)
通配符只支持 * 前缀形式:-*/__pycache__/ 可匹配任意层级的 __pycache__/,但 **/node_modules/ 无效。
路径含中文或空格时,别拖拽,用终端 pwd 复制
Finder 拖拽路径进 Where 框,常生成 URL 编码(如 %E5%BC%A0%E4%B8%89),Sublime 无法解析,点击结果时报 Unable to open — no such file。
安全做法:
- 在终端进入目标目录,执行
pwd,复制输出的 POSIX 路径(如/Users/张三/project/src) - 粘贴进
Where框,确保开头是/,结尾不加/(因为这是绝对路径,不是前缀) - Mac 用户注意:
~/Library是隐藏目录,Sublime 的文件选择器能直接导航进去,比复制路径更稳
真正容易被忽略的点是:Where 框的语义完全取决于你填的内容类型——. 和 src/ 是前缀匹配,/Users/xxx/src 是绝对路径匹配,!node_modules 是旧版语法(部分版本仍支持但不推荐)。混用不同风格,结果往往不如预期。











