ctrl+shift+l仅在选区含换行符时拆出多光标,否则视为单行;推荐全选后触发或用命令面板手动执行;列编辑、正则替换(如$匹配行尾)和关闭全词匹配可提升批量编辑准确率。

Ctrl+Shift+L 是最直接的入口,但必须选中含换行符的区域才生效;否则光标全堆在第一行末尾,不是 bug,是设计逻辑。
Ctrl+Shift+L 为什么只拆出一个光标?
它不数你“看起来选了几行”,只检查选区里有没有 \n。最后一行末尾没选中换行符(哪怕视觉上拖到了行尾),就当单行处理。
- 鼠标拖选时,多拖一格到看不见的换行符位置,才真正覆盖
\n - 更稳做法:先
Ctrl+A全选,再按Ctrl+Shift+L - 若已选中但失效,用
Ctrl+Shift+P→ 输入Split Selection into Lines手动触发,避免重选丢内容
给列表每行加前缀或后缀,别依赖 Ctrl+Shift+L 直接输
Ctrl+Shift+L 拆完光标默认落在每行起始位置,但如果你要加前缀(比如 [DEBUG]),光标却在行首空格后、缩进之后——手动 Home 对齐极容易错位。
- 列编辑更可靠:按住
Alt+Shift,从第一行最左可点击处(如行首空格)垂直拖到最后一行对应列 - 确保字体为等宽(
"font_face": "Consolas"或类似),否则列会偏移 - 输入后所有行同步生效;删也是整列删,不会误删后面代码
用正则替换批量追加内容,比手动多光标更快
处理几百行列表时,逐个点光标或列拖拽效率低,Ctrl+H 开正则模式更可控。
- 查找框填
$(表示行尾),勾选.*按钮启用正则 - 替换框填你要追加的内容,例如
; // auto - 点
全部替换,瞬间完成;无需担心光标丢失或 Esc 清空 - 注意:若列表含空行,
$也会匹配空行尾,需提前过滤或改用[^\r\n]+\$
Ctrl+D 匹配不到引号里的 user_id?不是不能,是默认全词匹配
想批量修改 JSON 或日志里 "user_id": 123 中的 user_id,连按 Ctrl+D 却跳过——因为 match_whole_word: true 把带引号的 "user_id" 当作不同词了。
- 双击选中目标词(如
user_id),再按Ctrl+D,它就以选区文本为基准匹配 - 或打开查找面板
Ctrl+F,关掉Match Whole Word,再用正则\buser_id\b - 跳过某处?按
Ctrl+K再按Ctrl+D,当前高亮项被忽略,光标移向下一处
真正难的不是记快捷键,而是理解 Sublime 多光标没有“撤销添加”——Esc、方向键、Ctrl+X 都会清空所有光标。一旦误触,只能靠 Ctrl+Z 撤回输入,但光标状态无法恢复。所以对齐、选区、正则验证这些前置动作,比按键本身更关键。











