Ctrl+Shift+F是唯一跨文件批量替换入口;Ctrl+H仅限当前文件,不支持项目级搜索、未加载文件、正则(需手动启用)及路径过滤,作用域必须明确指定如src,-node_modules,且替换后须Save All才生效。

Ctrl+Shift+F 是唯一能跨文件批量替换的入口,按 Ctrl+H 只改当前文件,点 Replace All 也救不回来。
为什么 Ctrl+H 不能批量替换
它压根不是为“项目”设计的:只搜索当前打开的文件、不读取未加载文件、不识别正则(除非手动点 .*)、也不检查路径过滤。你搜 user_name,结果只改了 index.js,而 api.js 和 utils.js 完全没动——这不是 bug,是功能边界。
Where 框里填什么才安全
填空或 ./ 是高危操作:前者只扫已打开标签页,后者会扫整个磁盘根目录(尤其 Windows 下可能卡死或误改系统文件)。必须明确指定作用域:
-
.:表示当前已加载项目(前提是用了File → Open Folder…) -
src,-node_modules:逗号分隔,减号排除,适合 JS/TS 项目 -
**/*.py:需先勾选Regex,且路径斜杠统一用/(Windows 也不例外) - 别写
./src或.\src——Sublime 不认相对路径前缀
.* 按钮不点,正则就等于没写
写了 \buser_name\b 却没生效?八成是 .* 没点蓝。这个开关在 Ctrl+H、Ctrl+Shift+F、Ctrl+R 三个面板里各自独立,必须每个面板都单独点一次。常见失效场景:
-
\d+匹配不到数字——因为点号.被当普通字符,+也被忽略 -
^import找不到行首 import——^在非正则模式下无意义 -
console\.log\([^)]*\)写对了但没结果——漏转义.和(,或根本没开正则
替换完不 Save All 就等于没换
点完 Replace All 后所有文件标签页出现星号 * 是正常现象——Sublime 把变更缓存在内存里,没写入磁盘。关窗口、崩溃、甚至切到别的应用再切回来,改动都会丢,且无法通过 Ctrl+Z 撤回。
- 必须手动执行
File → Save All - 快捷键:
Ctrl+K然后Ctrl+B(Windows/Linux),Cmd+K然后Cmd+B(macOS) - 大文件(>10MB)或非 UTF-8 编码(如 GBK)文件默认被跳过,右下角状态栏看编码是否显示
UTF-8
Find 看匹配项列表,双击几处人工确认上下文,再动手。

















