必须用 ctrl+shift+f 跨文件替换,而非 ctrl+h;需正确设置 where 路径、开启正则(alt+r)、勾选“. matches newline”、手动 save all,否则修改不生效或丢失。

不能靠 Ctrl+H 点 Replace All 就完事——它只改当前文件可见部分,其他文件根本不动,还可能误改 JSON 字符串或路径里的同名片段。
必须用 Ctrl+Shift+F 进入跨文件查找替换模式
Ctrl+H 打开的是单文件替换面板,哪怕你点了 Replace All,也只作用于当前打开且可见的文本区域。真正批量改多个文件,得用 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)。这个面板叫 “Find in Files”,是唯一能跨文件操作的入口。
- 点开后,
Where框必须填明确路径,比如src,-node_modules(逗号分隔,减号排除),不能留空或只写.,否则可能扫到系统目录 - 左下角状态栏要显示项目根路径(如
/project/my-app),侧边栏要有树形结构,否则说明没加载项目——File → Open Folder…是必须步骤 - Mac 用户若快捷键无反应,先去「系统设置 → 键盘 → 快捷键」关掉 Spotlight 冲突
正则模式不手动开,所有 \d、^、$ 都当普通字符处理
Sublime 的正则开关是独立的:每个查找面板(Ctrl+F、Ctrl+H、Ctrl+Shift+F)的 .* 按钮都要单独点一次。没点蓝,写 console\.log$$[^)]*$$ 也搜不到任何东西。
- 点击右下角
.*图标变蓝,或按Alt+R(Windows/Linux)/Cmd+Alt+R(macOS) - 想跨行匹配(比如
foo.*bar跨换行),还得额外勾选. matches newline(或按Alt+.) - 想匹配行首行尾?默认
^和$只认全文开头结尾,不是每行——稳妥写法是显式用\n或^\s*\r?\n
替换完不 Save All,所有改动都在内存里,关窗口就丢
点完 Replace All 后,所有被改的文件标签页会出现星号 *,这是 Sublime 在提醒:“我还没写进磁盘”。它不会自动保存,也没有跨文件撤销历史。
- 必须手动执行
File → Save All,或快捷键:Ctrl+K然后Ctrl+B(Windows/Linux),Cmd+K然后Cmd+B(macOS) - 如果某文件右下角显示
RO(只读),Replace All会跳过它,需先解除只读属性 - GBK 编码文件默认不参与搜索替换,得先右键 →
Reopen with Encoding → GBK再操作
最容易被忽略的是:Where 路径写错、正则没开、替换后忘保存——这三步任一出错,结果就是白忙活,还可能漏改关键文件。别图快跳过预览,点 Find 看匹配列表比直接 Replace All 安全十倍。











