必须先点开右下角的 . 按钮启用正则模式,否则 \n、\t、.、() 等均按字面匹配或报错;Windows/Linux 用 Alt+R、macOS 用 Cmd+Alt+R 开启,状态栏显示 . 才生效。

必须先点开右下角的 .* 按钮,否则 \n、\t、.、( ) 全部按字面匹配或报错——这是 90% 查不到的根本原因。
Ctrl+H 后找不到 \n 或 \t?先确认正则模式开了没
Sublime 默认关闭正则,输 \n 就真去搜两个字符「\」和「n」。常见错误现象:替换面板里写了 \n,点 Replace All 却提示“0 处被替换”。
- Windows/Linux:按
Ctrl+H→ 立刻按Alt+R(不是Ctrl+R) - macOS:按
Cmd+Option+F→ 立刻按Cmd+Alt+R - 右下角显示
.*才算生效;显示AB就是纯文本模式 - 想输入真实换行符?别手敲
\n,按Ctrl+Enter(Win/Linux)或Cmd+Enter(macOS)插入一个不可见的换行字符
替换空格、Tab、回车这些“看不见”的字符
光靠肉眼根本发现不了缩进混用或末尾残留 \r,得靠显示 + 正则双保险。
- 先让空白符可见:打开
Preferences → Settings – User,加一行:"draw_white_space": "all";已打开文件需右键标签页 →Revert刷新 - 状态栏点击
LF/CRLF→ 选Show Whitespaces,立刻看到:·(空格)、→(tab)、¶(\n)、^M(\r) - 删行首空格+Tab:
^[ \t]+→ 替换为空 - 删空行(含只有空格/Tab 的行):
^\s*$\n→ 替换为空(注意末尾的\n是要删掉的换行本身) - 清理孤立
\r(JSON/Shebang 报错元凶):\r(?!\n)→ 替换为空,避开合法的\r\n
查括号、点号、星号这些特殊符号
它们在正则里是元字符,不转义就失效或报错。
- 想搜真实字符串
console.log()?写成:console\.log\(\)(.和( )都要加反斜杠) - 搜字面
.、+、?、*、[、]:全部前置\,比如\.、\+、\[ - 搜双引号包裹的内容:
"([^"]*)"→ 替换为'$1'(注意:Sublime 只认\1,不支持$1;但替换框里$1是可用的,实际行为以测试为准,稳妥起见建议用\1) - 函数调用加花括号:
func\((.*?)\)→ 替换为func{\1}(外层\(和\)是字面括号,中间(.*?)才捕获参数)
跨文件批量替换要注意路径和排除
全局替换一不小心就改到 node_modules 或构建产物里,救都难救。
- 快捷键:
Ctrl+Shift+F(Win/Linux)或Cmd+Shift+F(macOS) -
Where框务必填清楚:<project></project>表示整个项目;加排除项如:<project>, -node_modules/*, -*.min.js</project> - 执行前一定先点
Find,看底部结果列表是否全是目标文件;确认无误再点Replace All - 没开 Git?现在就
git add -A && git commit -m "prep for bulk replace";替换后立刻git diff扫一眼
真正卡住人的从来不是正则语法多难,而是 .* 没点亮、\r 没转义、Where 范围填成 <current file></current> 还浑然不觉——每次操作前,用 Ctrl+F 先试搜一次,能命中再说替换。


















