Ctrl+Shift+L只生成一个光标,因为它仅依据选区中实际存在的换行符(\n或\r\n)切分光标,未覆盖换行符即视为单行处理;安全做法是先Ctrl+L逐行选中再执行,或全选后操作。

Ctrl+Shift+L 不是“多行编辑开关”,它只认你选区里有没有 \n ——没选中换行符,就永远只出一个光标。
为什么 Ctrl+Shift+L 总是只在第一行生效
这个快捷键根本不管“你眼睛看到几行”,只扫描当前选区里实际存在的 \n 或 \r\n。鼠标拖选时哪怕差一个像素没盖住最后一行末尾的换行符,整个选区就被当作单行处理。
- 常见错误现象:
Ctrl+Shift+L按完所有光标堆在第一行末尾,或干脆只出现一个光标 - 安全做法:先按
Ctrl+L(选中当前行),再按住Shift+↓向下扩展,直到所有目标行(含空行)都被高亮 - 更稳方式:全选整段文本(
Ctrl+A)后立刻按Ctrl+Shift+L,确保每个\n都被覆盖
列编辑(Alt+拖拽)后输内容只改第一行
Alt+拖拽(Windows/Linux)或 Option+拖拽(macOS)生成的是矩形选区,不是多光标——Sublime 默认只对首行执行输入/删除。
- 必须立刻按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)把矩形切分为每行一个光标 - 若某行比矩形窄,光标会自动落在该行末尾;建议先运行
Ctrl+Shift+P→Trim Trailing White Space统一清理后再操作 - 不想手动拆?列选后直接用
Ctrl+Shift+P→ 输入Insert Text at Carets,填入要插入的内容,避免粘贴错位
想统一加前缀或后缀,但光标位置乱七八糟
光标默认落在每行末尾换行符前,输内容会追加;如果选区包含缩进空格,所有光标就卡在缩进位置,一输内容就覆盖缩进、整块右移。
- 加前缀(比如
//):先按Home把所有光标拉到行首,再输入;或用列编辑从第 1 列垂直拖拽 - 加后缀(比如
;):先按End,或选中目标行后按Ctrl+Shift+L,再按End输入 - 行长不一还想对齐末尾?打开
Ctrl+H,勾选Regular Expression,查找$(行尾锚点),替换为你要加的内容
Ctrl+Click 加不了光标,drag_text 在暗中拦截
默认开启的 drag_text 会让 Ctrl+Click(Win/Linux)或 Cmd+Click(macOS)优先触发文本拖动,而不是添加光标——这是鼠标党失效的头号原因。
- 必须打开
Preferences → Settings,在右侧面板(用户设置)中显式写入:"drag_text": false - 点击时务必先松开
Ctrl(或Cmd)再点,按住不放容易拖出选区而非加光标 - 命令面板(
Ctrl+Shift+P)弹出瞬间会冻结所有多光标,操作前记得确认是否已关闭
最危险的不是不会用多光标,而是忘了 Sublime 处理的是纯文本——所有“看起来像”的换行、缩进、空格,它都照单全收;光标位置永远取决于你真正选中了什么,而不是你“以为”选中了什么。

















