Sublime多光标需精准控制选区与位置:Ctrl+Shift+L按换行符切分,须确保每行含\n;逐行Ctrl+L更稳;加前缀用Home/Move to Beginning,追加用End;禁用drag_text避免点击失效;列选择须用等宽字体并清理空格。

Sublime 的多光标不是“开启一个功能”,而是靠选区+快捷键实时叠加——按错一次 Esc 或方向键,所有光标就清空,必须从头来。
Ctrl+Shift+L 拆不出多个光标?先看选区里有没有 \n
Ctrl+Shift+L 不识别“视觉上几行”,只把当前选区里的每个换行符 \n 当作切片点。漏掉最后一行的换行符、或选区开头含缩进空格,都会导致光标数量不对或位置歪斜。
- 最稳做法:用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行点击目标行,每按一次加一行高亮;全部点完再统一按Ctrl+Shift+L - 鼠标拖选时,务必拖到每行末尾闪烁光标的位置(即包含
\n),松手前确认最后一行被完整选中 - 空行默认被忽略;若需处理,先在空行敲个空格再选中,或改用列选择
想在每行开头/结尾批量加内容?别直接输,先对齐光标
多光标下输入是同步的,但光标初始位置决定内容插在哪。直接按 Ctrl+Shift+L 后输内容,大概率覆盖缩进或错位——因为光标还停在原选区末尾,不是行首或行尾。
- 加前缀(如
//或const):拆光标后统一按Home(Windows/Linux)或Cmd+←(macOS),让所有光标落到各行最开头再输入 - 追加内容(如
;或/* */):优先用End(Windows/Linux)或Cmd+→(macOS)跳到换行符前;若键盘无End,可连按两次→,第二下会越过末尾空白 -
Home默认跳到第一个非空白字符,不是物理行首;缩进存在时会停在缩进后。安全做法是拆光标后运行Ctrl+Shift+P→ 输入Move to Beginning of Line
鼠标点不加光标?drag_text 还开着
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)触发文本拖动,而不是添加光标。这不是快捷键冲突,而是设置覆盖了行为。
- 打开
Preferences → Settings,在右侧用户设置中加入:"drag_text": false - 保存后建议重启 Sublime Text,部分版本不重启不生效
- 验证方式:按住
Ctrl(或Cmd)轻点行首空格,应出现新光标而非拖动整行 - 点击位置很关键:避免点在已有选区边缘、单词中间或空行缩进处;优先点行首、行尾或纯空格位置
列选择(Alt+拖拽)老是对不齐?字体和空格才是真因
列选择是矩形框选,只认列号,不按每行长度动态找行尾。它对字体和空白字符极度敏感,不是快捷键失效,而是环境没配对。
- 必须用等宽字体(如
Consolas、Fira Code或JetBrains Mono);系统默认字体(如Segoe UI或San Francisco)会导致中英文/符号宽度不一致,视觉偏移 - 某行对应列位置有空格或制表符不一致时,光标会自动落到该行实际末尾;建议先运行
Ctrl+Shift+P→Trim Trailing White Space - 列选状态下无法使用
Ctrl+D、Ctrl+U或方向键;必须按Esc退出才能切回多光标 - 列选择适合固定列操作(如 CSV 第三列),不适合动态行尾插入;每行长度差异大时,正则更可靠
真正难的不是怎么加光标,而是怎么让光标精准落在你想要的位置——尤其是缩进不一致、空行穿插、或原始数据带中文/短横线时,Ctrl+Shift+L 和列选择都容易失准,这时候得切到正则替换兜底。











