sublime多光标是实时叠加而非开启模式,关键在于理解光标生成、保留与删除逻辑:ctrl+d逐个匹配完全相同的词,ctrl+shift+l需含换行符的选区,alt+拖动生成矩形选区,ctrl+click需禁用drag_text,ctrl+u可撤销最近光标,esc或方向键会清空非主光标。

Sublime 的多光标不是“开启模式”,而是靠快捷键实时叠加光标——按错一个键(比如 Esc、方向键、Ctrl+X)就全丢,所以关键不是记组合,而是理解「光标怎么来、怎么留、怎么删」。
Ctrl+D 为什么只选中下一个词,而不是全部?
Ctrl+D 是贪心逐个匹配:它只找当前光标所在词的**下一个完全相同**的词(区分大小写、空格和标点都算),不跨行、不自动跳过字符串或注释。
- 想跳过某处(比如
"user_id"里的user_id),按Ctrl+K再按Ctrl+D - 想一次性全选文档中所有匹配项,用
Ctrl+Shift+G(不是Ctrl+G!后者是跳行号) - 如果双击选中了
user_id再按Ctrl+D,它会匹配整个选区内容,而非仅单词边界;想严格按单词匹配,先清空选区,把光标放在词内再按 - 匹配受
match_whole_word设置影响:关掉它,username里也能命中name
Ctrl+Shift+L 按了没反应,或者只在第一行加光标?
Ctrl+Shift+L 只对已有选区起作用,且必须含换行符。它不会“生成新选区”,而是把每个选中的换行位置拆成一个光标。
- 常见错误:只点了一下光标没选中任何文本,或拖选了一整段但末尾没换行 → 它直接静默忽略
- 正确做法:用鼠标拖选含多行的文本(如 5 行日志),确保选区以
\n或\r\n分隔,再按Ctrl+Shift+L - 如果某行结尾有空格或制表符,光标会落在空格后,容易误删;建议先用
Ctrl+Shift+P→ 输入Trim Trailing White Space清理 - 想从行首开始编辑?按
Home(不是鼠标点击),所有光标会同步跳到各自行首
Alt+拖动列编辑 vs Ctrl+Click 手动加光标,该选哪个?
列编辑(Alt+鼠标拖动)适合对齐位置,Ctrl+Click 适合不规则散点——但两者底层逻辑不同,不能混用。
-
Alt+拖动生成的是矩形选区,松开后转为多光标;它要求各行列数一致,否则末尾行可能缺光标 -
Ctrl+Click要求"drag_text": false已写入用户设置,否则点击会拖动文本而非加光标 - 点错一个?按
Ctrl+U(Windows)或Cmd+U(macOS)可逐次撤销最近添加的光标,不用全删重来 - 光标太多卡顿?Sublime 默认上限约 2000 个,超限后静默丢弃;改完立刻按
Esc退出,避免回车/退格时意外劈开所有行
多光标下 Tab、Enter、Backspace 行为反直觉?
Tab 不是跳焦点,Enter 不是换一行,Backspace 不是删前一个字符——它们在多光标下全部同步执行,且按当前语言缩进规则或换行逻辑生效。
-
Tab:在每个光标位置插入当前语法的缩进(如 4 空格),不是跳到下一个光标 -
Enter:在每个光标处插入新行,结果是把所有行都“劈开”,不是只在最后一行换行 -
Backspace:每个光标删自己前面的一个字符;如果光标在行首,就删上一行末尾字符(可能跨行) - 安全批量加前缀?先
Ctrl+Shift+L拆行 → 按Home→ 输入内容;比盲目打字稳得多
最易被忽略的点:多光标状态极其脆弱,Esc、方向键、剪贴、切 Tab 都会清空非主光标;别把它当“模式”来用,而要当作一次性的、带明确起点和终点的操作流。











