ctrl+h打开替换面板只是第一步,必须先用find all预览、勾选whole word和区分大小写、确认范围与正则捕获组正确,再执行替换。

Ctrl + H 打开替换面板,但不等于能直接替换
按下 Ctrl + H(Windows/Linux)或 Cmd + Option + F(macOS)确实会调出“查找与替换”面板,但很多人卡在这一步——输完内容直接点 Replace All,结果改错了地方。关键不是打开面板,而是确认匹配范围和模式是否正确。
常见错误现象:替换了 user,结果把 username、debug_user 全干掉了;或者替换了所有 id,连 CSS 类名 .id-card 也被波及。
- 必须先点
Find All预览所有命中项,右下角会显示“X occurrences found”,数字异常大时要立刻暂停 - 勾选
Whole Word(快捷键Alt + Enter)可避免子串误匹配,等价于正则中的\bword\b - 区分大小写(
Aa按钮或Alt + C)在处理变量名时很关键,比如API和api不能混 - 如果只是临时改当前文件,
Where框默认是<current file></current>;想跨文件,得切到Ctrl + Shift + F
Alt + F3 多光标选中所有相同词,但 Ctrl + D 更可控
Alt + F3(macOS 是 Ctrl + Cmd + G)会一次性选中全文所有匹配词,适合简单替换,但风险高:一旦光标落在不该改的位置(比如字符串里、注释里),批量编辑就失控。
更稳妥的做法是用 Ctrl + D 逐个添加选中项:
- 先双击或拖选一个目标词,再按
Ctrl + D选中下一个同词位置 - 每按一次只加一个,可以跳过不想改的实例(比如第3个是注释里的,就松手不按)
- 选中后直接输入新内容,所有光标同步修改,实时可见,无隐藏副作用
- 误操作了?按
Esc可退出多光标状态,不会丢上下文
Ctrl + Shift + F 全局搜索,Where 框写错路径就搜不到子目录
用 Ctrl + Shift + F 做项目级替换,最常踩的坑是 Where 框留空或只写 src——Sublime 默认不递归子目录,src 下的 src/utils/ 会被忽略。
必须显式使用通配符:
- 要搜整个项目:填
<project></project>或留空(前提是已打开项目根目录) - 要递归搜 JS 文件:
./src/**/*.js(双星号**才表示任意层级子目录) - 排除构建目录:
<project>, -node_modules/, -dist/, -build/</project>,减号开头才生效 - 限定类型又不限路径:
*.py, *.js,逗号分隔,不加路径前缀
性能影响明显:没排除 node_modules,搜一次可能卡住 10 秒以上,且结果里 90% 是无关内容。
正则替换时 $1 和 $0 容易写反,捕获组括号必须手动加
启用正则(点 .* 按钮或按 Alt + R)后,$1 引用第一个 () 捕获的内容,$0 引用整个匹配串——这个顺序反了就会出错。
典型错误示例:想把 "name": "alice" 改成 "name": 'alice',写成:
Find: "([^"]*)"<br>Replace: '$0'
结果变成 '"alice"'(多了一层引号),因为 $0 包含了外层双引号。正确写法是:
Find: "([^"]*)"<br>Replace: '$1'
注意:() 必须手动敲进去,Sublime 不会自动帮你加捕获组;\d+ 单独用只能匹配数字,要引用就得套成 (\d+)。
容易被忽略的地方:正则模式下,普通字符如 .、*、? 全部有特殊含义,想匹配字面量点号,得写成 \.;替换框里 $ 后跟数字才有效,$$ 才输出单个 $ 字符。











