sublime text批量替换需用ctrl+shift+f跨文件搜索,启用正则(.*图标)并用\b边界匹配独立词汇,替换后须手动save all,否则更改丢失。

Sublime Text 里批量替换段落中特定词汇,不是 Ctrl+H 点 Replace All 就完事——它默认只改当前文件可见区,不跨文件、不认正则、不自动保存,一不留神就把 user_id 替成 userName 的同时,顺手把 "user_id": "abc" 和 src/user_id/ 也干掉了。
Ctrl+H 只能改当前文件,跨段落必须用 Ctrl+Shift+F
想改整个项目里所有段落中的某个词(比如把文档中所有 TODO 改成 FIXME),不能依赖 Ctrl+H。那个面板天生单文件上下文,哪怕你打开了 50 个标签页,它也只扫当前激活的那个。
- 必须按
Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(macOS)调出「Find in Files」面板 -
Where框里填.表示全项目;填docs,-node_modules可限定目录并排除干扰项(逗号分隔,减号排除) - 如果
Where框灰显或只显示Open Files,说明还没加载项目——得先用File → Open Folder…加载整个目录,侧边栏出现树形结构才算生效
不点 .* 图标,所有正则都当普通字符串处理
想安全匹配“段落中独立出现的词”,比如只换 api_timeout 而不是 my_api_timeout 或 "api_timeout",就得靠正则边界。但没启用正则模式时,\b、^、$ 全无效。
- 必须手动点击查找面板右下角的
.*图标(变蓝才算激活),或按Alt+R(Windows/Linux)、Cmd+Alt+R(macOS) - 查
\bapi_timeout\b才能避开子串;若目标含特殊字符(如$user_id),得转义:\$user_id\b - 注意:
\b在 Sublime 里把下划线和数字当单词字符,所以\buser_name\b仍可能匹配到username;更稳写法是(?
替换后不 Save All,所有改动直接丢进虚空
点完 Replace All,所有被改的文件标签页会带星号 *——这只是内存缓存,Sublime 不自动写入磁盘。
- 必须手动执行
File → Save All,或快捷键:Ctrl+K然后Ctrl+B(Windows/Linux),Cmd+K然后Cmd+B(macOS) - 关窗口前没保存?没有撤销历史,没有备份快照,改了等于没改
- 大文件(>10MB)可能被跳过;右下角状态栏检查编码是否为
UTF-8,非 UTF-8 文件默认不参与替换
最常被忽略的一点:Sublime 不理解代码语义。它不管你是改变量名、字符串值还是路径,只要文本匹配就换。所以每次 Find All 后,务必人工扫一眼底部匹配列表——特别是引号内、注释里、正则字面量中是否混进了不该动的地方。











