sublime全局查找替换必须满足项目已加载、正则模式手动开启、路径范围显式限定三条件;否则replace all无效。需先open folder进入项目模式,点.启用正则,where填.或src/ .js,*.ts等,替换后务必save all。

Sublime 的全局查找替换不是“输完就替”,它必须同时满足三个条件:项目已加载、正则模式手动开启、路径范围显式限定——漏掉任一环,Replace All 就是假动作。
Ctrl+Shift+F 灰了或搜不到?先看左下角有没有项目路径
根本问题不在快捷键,而在 Sublime 是否处于项目模式。没打开文件夹,Ctrl+Shift+F 按了也无效,面板里连 Where 输入框都不出现。
- 检查侧边栏:有没有树形目录结构?没有 → 说明只是打开了单个文件,不是项目
- 看状态栏左下角:是否显示类似
~/my-project/的路径?没显示 → 必须先File → Open Folder… - Mac 用户注意:
Cmd+Shift+F可能被系统 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键 → Spotlight」里禁用
正则模式没生效?别信快捷键,只信 .* 图标颜色
Sublime 默认关闭正则,\d+、^$、console\.log\(\) 全部当普通字符串处理——除非你确认 .* 图标是蓝色的。
-
Ctrl+F、Ctrl+H、Ctrl+Shift+F三处面板的正则开关互相独立,每处都得单独点开 - 快捷键
Alt+R可切换,但图标状态更可靠;养成“眼睛先扫.*,再敲表达式”的习惯 - 没点开时写
$1,替换结果就是字面量$1,不会被解析成捕获内容
Where 栏怎么填才不误伤 node_modules?
Where 不是 shell 路径,也不是 glob 引擎(除非你开了 .*),它是前缀匹配器——填错一个字符,Replace All 就可能改崩构建。
- 搜整个项目:
.或留空(等价于当前打开的文件夹) - 只搜
src/下 JS 和 TS:src/ *.js,*.ts(逗号分隔,斜杠统一用/) - 排除黑名单:
!node_modules, !dist, !build(注意空格和英文逗号) - 想搜所有已打开但未保存的标签页?必须手动填
open_files,这是唯一方式
替换完为什么文件没变星号?Save All 是硬性步骤
Sublime 的全局替换不触发任何保存提示,也不标记文件为“已修改”。所有更改都在内存里,关掉就丢,Git diff 里也看不到——除非你手动保存。
- 替换完成后,必须执行
File → Save All,或快捷键:Ctrl+K松开 →Ctrl+B(Windows/Linux) - 标签页右上角没出现
*≠ 没改成功,是 Sublime 压根不更新这个状态 - 高风险操作前务必
git stash;替换完立刻git diff --no-index看真实改动,别信面板里的“已替换 42 处”
最常被忽略的其实是作用域控制:默认正则对整个文件生效。若只想处理当前选中区域,请先选中文本再按 Ctrl+H,面板左下角会出现 In Selection 提示——否则一不小心就全局替换了。











