Sublime Text 原生支持秒级全局文件内容搜索,无需插件;需通过 File → Open Folder 加载项目,Where 框填 . 或 src/ 等路径前缀,配合 Whole Word 或正则提升精度,替换后须手动 Save All。

Sublime Text 本身不依赖插件就能做全局文件内容搜索,Ctrl+Shift+F(Mac 为 Cmd+Shift+F)就是原生功能,所谓“安装全局搜索插件”是个常见误解——你不需要装任何插件来实现秒级文件内容搜索,只要用对方式。
为什么搜不到?先看项目是否真正加载
Sublime 的全局搜索只对「已通过 File → Open Folder 加载进侧边栏」的目录生效。它不扫描磁盘、不读取未加入的路径、也不管你双击打开了几个单文件。
- 状态栏左下角没显示类似
~/my-project/的路径?说明没进项目模式,Ctrl+Shift+F面板会灰显或只搜当前标签页 - 右键侧边栏空白处选
Add Folder to Project≠ 真正加载:这个操作只是把路径记进项目配置,但不会触发索引;必须用File → Open Folder - 刚加完大目录(比如含
node_modules),右下角显示Indexing…?等它消失再搜,否则新文件、子目录里的内容可能漏掉
Where 框填什么决定搜索范围和速度
这个输入框不是可选项,填错一个字符,就等于在搜另一个世界。它不支持 glob 通配符(除非开正则),而是前缀匹配路径。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含src/api/、src/components/):填src/,别写src/*或/src/ - 排除干扰目录:写成
., -node_modules/, -dist/(逗号分隔,斜杠统一用/) - 限定类型且带子目录:可用
src/**/*.ts,但src/*.ts不会匹配src/utils/fetch.ts(因为*不跨层级)
搜函数名总命中 refetch、isFetching?关 Whole Word 或切正则
Sublime 是纯文本引擎,不解析 AST。输 fetch 默认会匹配所有含这串字符的地方,包括注释、字符串、变量名。
- 点搜索面板右上角
W按钮(Whole Word):fetch就不再匹配refetch,但仍能匹配fetch()和fetch: - 要更严格(比如只匹配独立单词 + 后跟括号):启用
.*(正则),写\bfetch\s*\(\),注意括号要转义 - 搜 JS 函数定义:用
^\s*function\s+render\b,Where 填*.js;搜 Python 的def render:用^\s*def\s+render\b
替换完不保存?这不是 Bug,是设计
点击 Replace All in Files 后,修改只存在内存里,文件系统无变化,也不会标红提示“已修改”。关掉搜索面板就丢,且无任何确认弹窗。
- 替换前务必先点
Find All,确认结果面板列出全部目标行,避免误替 - 替换后必须手动执行
File → Save All,或快捷键:Ctrl+K松开 →Ctrl+B(Mac 是Cmd+K→Cmd+B) -
Ctrl+S只保存当前激活标签页,对批量替换完全无效
真正影响“秒级响应”的,从来不是插件,而是 Where 范围是否精准、是否排除了 node_modules 这类巨型目录、以及索引是否已完成——这些细节比装十个插件都关键。

















