ctrl+shift+l(windows/linux)或 cmd+shift+l(macos)将选区按换行符切片生成多光标,每个光标位于对应行末尾,用于批量追加内容;列选择(alt+shift+拖拽)创建垂直光标阵列,适合结构化字段对齐;ctrl+d 和 alt+f3 结合正则可语义化格式调整;esc 是一键清除所有光标最可靠方式。

Ctrl+Shift+L 拆行光标是格式化文本的起点
多光标本身不格式化,但它是批量操作的前提。最常被忽略的是:Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)不是“选中所有匹配项”,而是把当前选区**按换行符切片**——选中 5 行,就生成 5 个光标,每个落在对应行末尾。这个行为决定了你后续输入的内容会自然追加到每行尾,比如统一加逗号、分号或引号。
常见错误:先 Ctrl+A 全选再按 Ctrl+Shift+L,结果每行末尾都加了光标,但中间空行、注释行也被包含,导致格式错乱。建议只选中目标段落(比如函数参数块、JSON 字段列表),再执行。
- 如果想在每行开头加前缀(如
//注释),选中目标行后按Ctrl+Shift+L,再按Home跳到行首,输入即可 - 对齐参数时,
Ctrl+Shift+L后配合方向键 +Tab或空格可手动对齐,但注意 Sublime 不自动补空格,得自己控制缩进量 - 该操作对只读文件仍生效,但输入会被静默丢弃——右下角显示
read only时别浪费时间调试光标位置
Alt+拖拽列选择适合结构化字段对齐
列选择(Alt+Shift+鼠标拖拽,不是单独按 Alt)生成的是垂直对齐的光标阵列,本质是“矩形区域编辑”。它不依赖语义,只认字符坐标,所以特别适合处理 CSV、日志字段、HTML 属性值这类横向对齐需求。
容易踩的坑:中文混排时列错位。因为 Sublime 按字符数计算列宽,而中文字符在等宽字体里占 2 个英文字符宽度,但渲染位置仍以单字符为单位。结果就是你拖出的矩形在视觉上偏左,输入内容会“漂移”。
- 确保使用等宽字体(如 Fira Code、JetBrains Mono),并在
Preferences → Settings中确认"font_face": "xxx"已设 - 列选中后按
Delete可批量删某列字符;按Backspace则从光标位置向左删,行为和普通编辑一致 - 如果拖拽没反应,检查是否启用了输入法(搜狗、微软拼音常劫持
Alt+Shift),临时切英文输入法再试
Ctrl+D 和 Alt+F3 配合正则做语义化格式调整
单纯靠位置对齐不够时,得转向语义识别。Ctrl+D 是增量匹配:光标停在某个变量名上,按一次选中它,再按一次选中下一个同名变量,适合重命名中途跳过某些实例;Alt+F3 是全量匹配:直接高亮文档中所有相同词,一步到位。
但真正灵活的是结合正则查找。比如要把 key: value 格式转成 "key": "value",不能只靠 Alt+F3 找 key,得用正则精准捕获结构:
- 打开查找面板(
Ctrl+F),启用正则(Alt+R),输入(\w+):\s*(\S+) - 点
Find All,所有匹配项被高亮,此时按Ctrl+Shift+L,光标会落在每个捕获组开头(即每个 key 前) - 按
→移到冒号前,输入";再按→移到 value 前,输入"—— 因为光标已对齐,一次按键全生效 - 注意:若某行不匹配该正则(比如含空格的 value),
Find All就不会覆盖它,后续光标位置会整体偏移,务必先确认匹配完整性
格式化后光标残留和输入延迟要主动清理
多光标不是“开启即用”的模式,它没有开关状态,只有叠加和清除。大量光标(尤其超 15 个)会导致输入延迟明显,且容易误触其他快捷键(比如本想按 Ctrl+S 保存,却触发了多光标下的其他行为)。
最可靠的一键退出方式是按 Esc —— 它清空所有光标,回到单光标状态,且不影响你已输入的内容。别依赖鼠标点击空白处“取消”,那可能只是隐藏光标而非清除。
-
Ctrl+U是软撤销(undo selection),只能撤回最近一次光标添加动作,不适合清理大量分散光标 - 如果按
Esc后发现某处编辑没生效,大概率是那行被折叠(代码折叠块内光标不可见但依然存在),展开后再试 - 列选择后若想保留部分光标继续编辑,别直接按
Esc,可用Ctrl+Click逐个移除不需要的,再继续











