sublime多行光标非模式化,依赖快捷键实时叠加:ctrl+shift+l需选区含换行符才拆出多光标,否则仅生成一个;ctrl+d严格按完整词匹配,光标位置影响取词准确性;alt+拖拽列选与ctrl+click机制不同,须禁用drag_text且注意软换行干扰。

Sublime 的多行光标不是“模式”,而是靠快捷键实时叠加光标——按错顺序、没选中内容、或松手早了,光标根本不会出现。
Ctrl+Shift+L 为什么只生成一个光标
这个命令不识别“看起来是多行”,只认你选区里有没有 \n。它把当前选区按换行符切片,每片末尾放一个光标。
- 鼠标拖选时没覆盖到行尾换行符(比如松手早了),Sublime 就当它是单行选区
- 空行被选中,光标会落在空行开头,而非行尾;想补内容得先按
End - 安全做法:先用
Ctrl+L(连续按)选中目标行,再按Ctrl+Shift+L,100% 拆成多光标 - 如果选区含缩进空格,光标就停在缩进位置,一输字母所有行都右移——看着对齐,实际错位
Ctrl+D 连续按却跳过了目标词
Ctrl+D 不是模糊搜索,它严格匹配当前光标所在词的完整边界和大小写。第一次按会自动双击取词,后续才逐个匹配。
- 光标停在
user_name中间,可能只取到_name,后续全错 - 想匹配子串(比如在
username_input里也命中user),得先关掉match_whole_word,或手动双击选中user再按Ctrl+D - 遇到不想改的地方(如字符串里的
"user_id"),按Ctrl+K再按Ctrl+D跳过 - 按太快或中间停顿太久,Sublime 可能判定为两次独立操作,漏掉某次匹配
Alt+拖拽列选择 vs Ctrl+Click 手动加光标
两者都出多光标,但底层机制完全不同,不能混用,也不能在列选状态下继续用 Ctrl+D 或 Ctrl+Shift+L。
- 列选择(
Alt+拖拽)要求等宽字体且关闭软换行;否则视觉对齐但光标歪斜 -
Ctrl+Click(macOS 是Cmd+Click)是纯坐标点添加,不依赖文本内容,但需确认设置中"drag_text": false已启用,否则点击会拖动文本 - 列选择失败常见原因:某行对应列为空格或制表符,Sublime 会自动把光标移到该行行尾
- 列选状态下必须先按
Esc取消,才能切回普通多光标流程
Ctrl+Shift+↑/↓ 对齐加光标总失败
这个操作不是“列选择”,而是“在当前列向上/向下追加光标”,要求目标行在该列位置有可编辑字符(不能是空行或超出行宽)。
- 典型场景:把几行变量声明的等号对齐——先把光标放在第一个
=上,按Ctrl+Shift+↓,光标会逐行往下跳到同列的=处 - 失败原因常是:某行该列为空格或制表符,Sublime 会把光标移到该行行尾;解决办法是先用命令面板
Ctrl+Shift+P→Convert Indent to Spaces统一缩进 - 不能跨文件使用,只作用于当前视图;也不支持向右/左横向扩展,只有上下两个方向
- 真正难的不是记快捷键,而是预判光标落点是否可控——
Ctrl+D受文档结构影响大,Ctrl+Shift+L受选区范围控制严,Ctrl+Shift+↑/↓则受各行内容对齐程度限制最硬











