Sublime Text 中跨文件查找替换需用 Ctrl+Shift+F/Cmd+Shift+F 调出 Find in Files 面板,Where 填 .(项目根目录)或 ./src 等范围,必须先点击 Find 再执行 Replace,正则替换需启用 Regular Expression 并注意转义,Replace All 不可撤回,建议逐个确认。

用 Find in Files 替代普通查找
普通 Ctrl+F(Windows/Linux)或 Cmd+F(macOS)只在当前文件生效,整个项目替换必须走专门的批量入口。直接按 Ctrl+Shift+F(Win/Linux)或 Cmd+Shift+F(macOS),调出 Find in Files 面板——这是 Sublime Text 唯一支持跨文件查找与替换的原生功能。
Where 输入框决定搜索范围,别留空
面板底部的 Where 框控制作用域,填错会导致“明明有却搜不到”。常见写法:
-
.:当前打开的文件夹(即项目根目录),最常用 -
./src:仅限src子目录 -
./**/*.js:所有 JS 文件(需开启Use Regular Expressions并勾选Recursive) - 留空:只查当前已打开的标签页,不是整个项目
如果项目是通过 Project → Open Project 加载的,Where 里填 . 就能覆盖全部已纳入项目的路径;否则依赖文件系统真实目录结构。
替换前务必先点击 Find,再点 Replace
Sublime 不提供“一键全量替换”按钮,流程是两步:先 Find 扫描匹配项并列出结果,再在结果列表中点 Replace 或 Replace All。容易踩的坑:
- 没点
Find就直接点Replace All:无响应,界面没提示 - 结果列表太长卡住:关掉部分大文件再试,或加更精确的
Where范围 - 正则替换后格式错乱:比如把
\n写成\\n,实际应写\n(Sublime 正则引擎识别原生换行符)
例如:把所有 console.log 替换为 debug.log Find: console\.log\((.*?)\) Replace: debug.log($1) 注意点:点开左下角齿轮,勾选Regular Expression;.要转义,(.*?)是非贪婪捕获
大项目慎用 Replace All,优先用 Replace 逐个确认
Sublime 的 Replace All 是真·全局执行,不支持撤回(Ctrl+Z 只能撤销单个文件内的操作,且需该文件仍处于打开状态)。尤其当 Where 设为 . 时,可能误改 node_modules、build 输出等非源码目录。稳妥做法:
- 先用
Where: ./src锁定业务代码范围 - 检查
Find结果列表,确认每条匹配都合理 - 用鼠标点每一行左侧的
Replace按钮,手动控制节奏 - 替换完立刻测试关键路径,避免连锁影响
真正需要批量时,建议先导出 Find in Files 结果(右键结果面板 → Save as...),留档比对;或者切到命令行用 rg -l "old" | xargs sed -i 's/old/new/g' 更可控。










