Sublime 的“万能搜索”实为三套独立机制:Ctrl+P 搜文件名(需项目模式)、Ctrl+Shift+F 搜内容(Where 路径匹配)、Ctrl+Shift+R 专搜文件名;各有限制规则,混用即失效。

Sublime 的「万能搜索」根本不存在——它其实是三套独立机制:Ctrl+P 搜文件名、Ctrl+Shift+F 搜文件内容、Ctrl+Shift+R 专搜文件名(Goto Anything 的文件模式),各自有硬性前提和隐藏规则,混用就失效。
Ctrl+P 搜不到文件?你压根没进项目模式
左下角没显示类似 ~/my-project/ 的路径,说明 Sublime 只当你是打开了单个文件,不是项目。Ctrl+P 此时只搜那个文件本身,哪怕你开了 20 个标签页也没用。
- 必须用
File → Open Folder…选中含package.json、src/或manage.py的根目录 - 新建文件后搜不到?按
Ctrl+Shift+P→ 输入Refresh Folders回车,不是Rebuild Index - 输
@init才能跳函数定义;输#login只在当前已打开文件里找 HTML 元素 - 误输太多字符?按
Esc清空,别狂按退格键——它会回溯历史,不是删输入
Ctrl+Shift+F 搜不到内容?Where 字段填错等于白忙
Where 不是正则、不是 glob、不认 **(除非你开了正则模式),它是路径前缀匹配器。填错一个字符,搜的就是另一个世界。
- 搜整个项目:填
.(单个英文点),不是留空、不是./、更不是/src/ - 只搜已打开的文件(含未保存的
untitled):必须手动填open_files,这是唯一可靠写法 - 限定 JS 文件:填
src/ *.js(空格分隔路径和后缀),Windows 也用/,不用\ - 排除
node_modules:加-node_modules/,注意短横开头、斜杠结尾
替换完内容丢了?Sublime 压根不保存,你得亲手按两次键
点 Replace All in Files 后,所有更改都停在内存里。标签页右上角不会变星号,Ctrl+S 也只保存当前文件——关掉 Sublime,全部清空,毫无提示。
- 替换完成后,必须手动执行
File → Save All - 或快捷键:
Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B) - 高风险替换前,先
git stash;替换完用git diff看真实改动,别信面板里“已替换 127 处” - 想把
console.log()改成debugger?先开正则(点.*),查console\.log\([^)]*\),否则括号会被当元字符
搜中文、特殊字符或正则替换总失败?转义和模式开关才是关键
默认开启的 Regular Expression(.*)会让 .、+、(、) 全部变成正则语法,搜 console.log() 就会失败。
- 搜中文或
console.log()这类字面量:确保.*没勾选,且Match Whole Word(W)和Match Case(Aa)也关掉 - 要严格匹配单词
id,不开正则就点W;开正则就写\bid\b,别只写id - 正则替换捕获组:用
$1引用第一个(),没括号就用$0表示整个匹配;$1写成$0会丢内容 - 跨行匹配?正则开头加
(?s),否则.*遇到换行就停
最常被忽略的点:所有搜索都受 folder_exclude_patterns 和 file_exclude_patterns 控制,哪怕你填对了 Where,被排除的路径照样搜不到——临时绕过要加 ! 前缀,比如 !node_modules/react。

















