Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是唯一全局查找替换入口;需确保项目模式开启、快捷键未被劫持,Where 填“.”才真正搜索整个项目,正则替换用 $1 不用 \1,且 Replace All 后必须手动 Save All。

Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是唯一真正有效的全局查找替换入口,其他所有快捷键(包括 Ctrl+F、Ctrl+H、右键菜单)都只作用于当前文件——按错就白忙活。
Ctrl+Shift+F 打不开或面板灰显?先看项目模式和快捷键
面板不可用,90% 是这两个原因:
- 没进项目模式:左下角状态栏不显示类似
~/my-project/的路径,说明只是单文件打开;必须用File → Open Folder…重新加载整个文件夹 - 快捷键被插件劫持:打开
Preferences → Key Bindings – User,搜"ctrl+shift+f"或"cmd+shift+f",删掉冲突项;不确定谁占用了?去Key Bindings – Default底部确认原生绑定是否存在:{"keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"}}
Where 字段填什么才真正扫整个项目?别信“留空=全搜”
留空 ≠ 全项目,它等价于“只搜当前已打开的标签页”,这是最多人踩的坑。填错一个字符,可能漏掉 90% 文件。
- 填
.(单个英文点):最常用也最安全,表示整个项目根目录及其所有子目录 - 填
./src/**/*.js:只搜src/下所有.js文件(**表示递归) - 排除
node_modules和dist:写成., -node_modules/, -dist/(注意统一用正斜杠/,Windows 上也一样) - Linux/macOS 路径区分大小写:
./SRC和./src是两个目录
正则替换总出错?盯住 .、$1 和换行
Sublime 的正则引擎是 PCRE 风格,但替换语法是自研的,和 Python、JavaScript 都不完全一致。
-
.默认不匹配换行符:哪怕开了.*按钮,foo.*bar也找不到foo\nbar;真要跨行,必须加(?s)前缀:(?s)foo.*bar - 捕获组引用只能用
$1、$2,不能用\1——后者在 Sublime 里是字面量,不会被解析 - 例如把
getUser(id)改成getUser({ id }):查找填getUser$$([^)]+)$$,替换填getUser({ $1 })(括号需转义) - 删独立
console.log行:查找填^[ \t]*console\.log$$[^)]*$$;[ \t]*$,替换留空;注意.和$要转义,^和$锁定整行
Replace All 后内容丢了?这不是 Bug,是设计
Sublime 不会自动保存被修改的文件——所有改动都在内存里,关掉就清空,且无任何提示。
- 替换后必须手动执行
File → Save All,或快捷键:Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B) -
Ctrl+S只保存当前激活标签页,对批量替换无效 - 务必先点
Find All,看右下角显示命中几处;数字异常大(比如上千)就先暂停,检查是否路径或正则太宽泛
最容易被忽略的是:Where 填错、正则没开 (?s) 却想跨行、以及替换完不执行 Save All——这三个动作任意一个漏掉,结果就是改了等于没改。


















