需点击查找替换面板左下或右下角的.*图标激活正则模式,否则Ctrl+H/Cmd+H仅支持普通字符串搜索;Alt+R可快速切换。

怎么打开正则替换面板,不点错位置
Sublime 的正则替换不是默认开启的——你按 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)弹出来的只是个“普通查找替换框”,右下角那个 .* 图标没点亮,就等于没开正则。哪怕你写了 \d+ 或 ^$,它也只会当纯字符串去搜,根本不会匹配数字或行首行尾。
- 正确姿势:呼出面板后,必须点一下左下角或右下角的
.*图标(部分版本在左下,部分在右下),图标变蓝才算激活;也可以直接按Alt+R切换 - 常见错误现象:输完
console\.log\(.*?\)却一个都不高亮 → 八成是.*没点开 - 全局替换(
Ctrl+Shift+F)同样要单独点.*,否则Where里写的路径再准也没用
删空行、去行尾空格,为什么 \s 反而危险
\s 看似方便,但在 Sublime 里它会匹配换行符(\n、\r),导致 ^\s*$ 不仅删空行,还可能误吞只含回车符的“假空行”,甚至破坏文件末尾结构。
- 删真·空行(不含任何字符):
^$(最严格) - 删含空格/Tab 的空行(推荐):
^[ \t]*$(显式限定,避开\s的跨行风险) - 删行尾空格+Tab:
[ \t]+$,别用\s+$,否则可能吃掉末尾换行符,保存后文件少一行 - 执行前勾选
In Selection可限制范围,比如只处理当前选中的代码块,避免误改配置或注释
捕获组怎么写、怎么用,$1 和 \1 别混了
Sublime 只认 、 这种美元符号引用法, 是无效的。而且捕获组必须出现在查找字段里,替换字段才能引用。
- 提取括号内参数(如
getUserInfo(id)→getUserInfo({ id })):
查找:getUserInfo\(([^)]+)\),替换:getUserInfo({ $1 }) - 为什么用
[^)]+而不用.*??因为.*?在跨行或嵌套时容易“破界”,[^)]+明确表示“非右括号字符”,更安全 - 想加前缀?查找:
^,替换://(注意空格);想加后缀?查找:$,替换:; - 替换栏里写
\n不会换行,得写\n;而搜索栏里的\n才匹配真实换行符
跨文件批量替换,Where 里怎么写路径才不炸库
用 Ctrl+Shift+F 全局替换时,Where 填 * 就等于裸奔——log\(.*?\) 可能把你 node_modules 里第三方库的 console.log 全干掉,甚至改到 README.md 里的示例代码。
- 精准限定路径:
src/**/*.js(匹配src下所有.js文件) - 多后缀过滤:
*.ts, *.js(逗号分隔,不加空格) - 排除目录:
!node_modules, !dist(前面加!) - 执行前务必点
Find All,看右下角预览列表是否每条路径都合理;Replace All没撤回键,误操作只能靠 Git 恢复
真正容易被忽略的,从来不是语法对不对,而是你没看清原始文本里有没有不可见字符、BOM、混用空格和 Tab,或者注释里藏着一模一样的模式。先小范围 Find All,确认高亮位置全是你想要的,再动手。










