Ctrl+Shift+L按选区内的换行符切片生成光标,未包含\n或\r\n则视为单行;需确保选中完整行(含末尾换行符),再执行才每行末尾生成独立光标。

Ctrl+Shift+L 为什么只生成一个光标?
它不是“识别多行”,而是严格按你选中的换行符切片。选区里没包含 \n 或 \r\n,就当单行处理。比如鼠标拖选 5 行但最后一行末尾没覆盖到换行符,Ctrl+Shift+L 只会在第一行末尾放一个光标。
安全做法是:先用 Ctrl+L(逐行点击)或 Shift+↓(向下扩展选区)确保选中完整行块,尤其注意最后一行是否带换行符;再按 Ctrl+Shift+L,每行末尾立刻生成独立光标。
- 空行也会被拆出光标,但光标停在行首;若行尾有空格或
\r\n,光标可能卡在不可见字符后 - 建议操作前运行
Ctrl+Shift+P→ 输入Trim Trailing White Space清理干扰 - 没选中任何内容时按
Ctrl+Shift+L,Sublime 会默认对全文每行加光标——容易卡顿,慎用
怎么把所有光标拉到同一列?
Ctrl+Shift+L 不负责对齐,只负责分行。想让光标统一落在第 12 列、等号后或冒号前,得靠后续手动定位。
最稳的方式是:拆完光标后立刻按 Home 把所有光标拉到各自行首,再反复按 →(右箭头)直到目标列。视觉上对齐了,输入才不会错位。
- 列选择(
Alt+Shift+↓向下扩展)也能实现垂直对齐,但它生成的是矩形选区,不是多光标;输内容前必须先按Esc退出列选模式 - 如果某行该列位置为空(比如短于目标列),光标会自动跳到行尾,而非悬空
- 混用 Tab 和空格会导致列计算错乱,建议先执行
View → Indentation → Convert Indentation to Spaces
Ctrl+Click 加不了光标?多半是 drag_text 搞的鬼
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)优先尝试拖动文本,而不是添加光标——这是最常被忽略的配置项。
必须手动关闭:打开 Preferences → Settings,在用户设置里加一行:"drag_text": false,保存并重启 Sublime。
- 点击位置也很关键:避免点在单词中间、缩进空格或已有选区边缘;优先点行首空白处、行尾换行符前,或纯空格段
- 远程桌面或某些键盘布局下,
Alt+Tab可能劫持Alt+Shift+拖动;可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启 - 中英文混排或非等宽字体(如系统默认 UI 字体)会导致列编辑视觉偏移;换成
Consolas或Fira Code立刻稳定
正则匹配批量加光标,比 Ctrl+D 更可控
想改所有 user_id 却避开 USER_ID 和 user_id_list?Ctrl+D 容易误命中,而查找面板 + Ctrl+Shift+L 更精准。
步骤:按 Ctrl+F 输入 \buser_id\b(\b 是单词边界),勾选 Match Case 和 Whole Word;按 Enter 跳到第一个匹配,再按 Ctrl+Shift+L,所有匹配位置立刻变成独立光标。
- 如果某处想跳过(比如字符串里的
"user_id"),按Ctrl+K再按Ctrl+D,当前高亮项被忽略,光标跳到下一个 - 误加太多光标?
Ctrl+U可逐次撤销最近添加的光标,不用全删重来 - 光标超过约 2000 个时会静默丢弃;改完立刻按
Esc,避免Enter或Backspace时意外劈开所有行

















