必须先用正则在查找面板中定位目标,再用Ctrl+Alt+G(Win/Linux)或Ctrl+Cmd+G(macOS)将Find All结果转为多光标;直接按Ctrl+D或Ctrl+Shift+L无法响应正则逻辑。

必须先用正则在查找面板中定位目标,再用快捷键把匹配结果转为多光标——直接对文本按 Ctrl+D 或 Ctrl+Shift+L 是无法响应正则逻辑的。
怎么用 Find All + Ctrl+Alt+G 生成正则匹配的多光标
这是最稳定、最常用的一条路径。Sublime 不允许你在未执行查找的情况下凭空“按一个键就全选正则结果”,它要求你显式触发一次匹配扫描。
- 打开查找面板(
Ctrl+H),输入你的正则表达式,比如id="\w+",确保点击了.*图标启用正则模式 - 点击
Find All(或按Enter),此时所有匹配项会被高亮,但光标只停在第一个匹配处 - 立刻按
Ctrl+Alt+G(Windows/Linux)或Ctrl+Cmd+G(macOS)——所有匹配项会变成独立光标 - 注意:
Ctrl+Alt+G仅对当前查找面板中已激活的正则有效;如果之前搜的是普通字符串,这个快捷键会失效
为什么 Ctrl+Alt+Enter 比 Ctrl+Alt+G 更适合改捕获组内容
当你只想编辑正则里的某一部分(比如引号内的值),Ctrl+Alt+Enter 会把光标精准落在每个捕获组($1)内部,而不是整个匹配串上。
- 写正则时必须用括号明确捕获,例如:
class="([a-zA-Z0-9_-]+)" - 勾选
Regular expression后点Find All,确认预览区列出了全部目标 - 按
Ctrl+Alt+Enter,所有$1区域(即引号内部分)都会出现光标,位置严格对齐到捕获内容起始 - 此时输入新值,不会误删引号或等号;而
Ctrl+Alt+G会选中整个class="xxx",删起来容易出错
常见失败原因:光标没生成或只生成了一个
不是快捷键错了,而是前置条件没满足。Sublime 的多光标生成高度依赖查找面板的“当前状态”。
- 没点
Find All就直接按Ctrl+Alt+G→ 无反应或只作用于当前光标词 - 正则里用了
.却没开启.\n模式(点击\n图标),导致跨行内容不匹配 - 忘记转义特殊字符:想匹配字面量
+,却写了\w+而不是\w\+,结果匹配范围失控 - 启用了
Match case或Whole word,但实际数据大小写混杂或嵌在长单词里
替换后还要微调?别重复跑正则,用多光标补操作
正则替换适合结构固定的大批量改写,但遇到格式补全(如加引号、补逗号、删多余空格),多光标比替换更可控。
- 先用
Ctrl+Alt+G把所有匹配项设为光标,按←或→移动光标到精确位置(比如引号前/后) - 输入
"或,,所有光标同步响应;若要删前后空格,直接按Delete或Backspace - 如果某几行需要跳过,按
Esc退出多光标,再用鼠标Ctrl+Click手动加光标,避免重跑正则 - 注意:一旦开始输入或删除,Sublime 就会合并重叠光标——所以移动光标要快,别在中间停顿
真正卡住人的从来不是正则怎么写,而是没意识到 Sublime 的多光标永远分两步:先让系统“看见”你要什么,再告诉它“去哪动”。漏掉任何一步,光标都不会如你所愿地炸开。

















