ctrl+shift+l需先建立多选区才能批量加光标,正确流程是:ctrl+f搜索→alt+f3全选匹配项→再按ctrl+shift+l;若需跳过个别匹配,可用ctrl+k ctrl+d临时排除。

Ctrl+Shift+L 之前必须先让光标落在每个匹配位置
Sublime 的多行编辑不自动“查找并加光标”,Ctrl+Shift+L 只把当前选区按换行符拆成多光标,它不管内容是否匹配。想对“下一个匹配项”加光标,得先让光标跳过去——也就是先完成查找动作。
常见错误是:搜完 Ctrl+F → 按 Enter 跳到第一个匹配 → 立刻按 Ctrl+Shift+L,结果只在第一行末尾出一个光标。这是因为此时只有单个光标位置,没形成多选区。
- 正确链路是:
Ctrl+F输入词 → 按Enter跳到第一个匹配 →F3跳到第二个 → 再按F3跳到第三个……直到你停在想要开始批量编辑的那一处 - 然后用
Ctrl+D逐个扩展选中(每按一次,高亮下一个同词);或者直接Alt+F3全选所有匹配项 - 最后按
Ctrl+Shift+L——这时选区里已有多个离散位置,Ctrl+Shift+L才会把每个匹配点转成独立光标
Alt+F3 全选后 Ctrl+Shift+L 是最稳的批量入口
Alt+F3 不只是高亮,它实际创建了一个含多个独立选区的 Selection 对象。这是 Ctrl+Shift+L 能正确响应的前提。
容易踩的坑:
- 勾选了
Match Whole Word或Match Case却没注意当前搜索词是否满足条件,导致Alt+F3没选中预期位置 - 搜索时用了正则但没点
.*图标启用 Regex 模式,^、$、\d全部失效 -
Alt+F3后误按←或→,会清空多选区,只剩一个光标;此时应立刻按Ctrl+U软撤销,而不是重来
想跳过某几个匹配?用 Ctrl+K Ctrl+D 忽略当前项
当你 Alt+F3 全选后,发现其中一两处不该改(比如注释里的同名字符串),不用删掉重搜。Sublime 提供了动态排除机制。
操作很简单:
- 光标停在你想跳过的那个匹配上
- 按
Ctrl+K,再按Ctrl+D(顺序不能错) - 当前高亮项立即取消选中,光标自动移到下一个匹配位置
- 重复该操作可跳过多处;跳完再按
Ctrl+Shift+L,剩下的匹配点才会转为光标
注意:Ctrl+K Ctrl+D 不影响搜索结果本身,只临时修改当前 Selection,适合边查边筛的场景。
行首/行尾加内容别硬按 Home/End 对齐
很多人 Ctrl+Shift+L 后狂按 Home 想把光标全拉到行首,结果缩进不一致时,光标错位严重。这不是 bug,是 Sublime 的行为逻辑:它不会“智能对齐”,只响应你按下的键。
真正可靠的做法分两类:
- 行首加内容:用
Ctrl+H→ 勾选 Regex → 搜^→Find All→Ctrl+Shift+L→ 直接输入 - 行尾加内容:同样
Ctrl+H+ Regex → 搜$→Find All→Ctrl+Shift+L - 如果要加在特定列(比如统一在第 4 列插入),就得用列选择:按住
Alt+Shift从第一行目标列拖到最后一行对应列,确保字体是等宽(如"font_face": "Consolas")
正则里的 ^ 和 $ 默认按行生效,不需要额外修饰,也不依赖文件编码或换行符类型。











