Sublime没有多行编辑开关,所有多光标均靠快捷键实时叠加;Ctrl+Shift+L是按换行符切片而非对齐工具,效果取决于选区是否包含跨行换行符,未选中\n或含缩进空格会导致光标错位。

Sublime 没有“开启多行编辑”的开关,所有多光标都是靠快捷键实时叠加出来的——按错一个 Esc、方向键或 Ctrl+X,光标就全丢;不是功能没生效,而是你没触发对条件。
Ctrl+Shift+L 为什么只出一个光标或全歪了
它不是“对齐工具”,而是“按换行符切片器”:把当前选区里每个 \n 前的位置各放一个光标。效果完全取决于你选了什么。
- 没反应或只出一个光标?大概率是没选中跨行内容——鼠标拖选时漏掉了最后一行的换行符,或者光标根本没选中任何文本
- 光标落在缩进空格上?因为你选区里包含了开头的空格或制表符,光标就停在那儿,一输内容就覆盖缩进
- 想统一加前缀(比如
//)?别直接按Ctrl+Shift+L,先按Home把所有光标拉到行首;想加后缀(比如;)?按End再输 - 安全做法:用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)逐行选中目标行,再统一按Ctrl+Shift+L,100% 按行生效
Ctrl+D 总跳过目标变量名
Ctrl+D 默认开启 match_whole_word: true,且严格匹配大小写、下划线和单词边界。它不是“搜词”,而是“从当前选中内容出发,找下一个字面完全一致的片段”。
- 双击选中
user_id后连按Ctrl+D,会跳过user_id_list和USER_ID——前者多了_list,后者大小写不符 - 想改
userName却漏了user_name?先确保双击选中的是你要的完整形式,再按Ctrl+D,避免被单词边界截断 - 注释里有同名字符串干扰?按
Ctrl+K再按Ctrl+D,跳过当前高亮项,光标保留在原位 - 一次性全选?用
Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但注意上限约 10000 处,超量静默丢弃
列选择(Alt+拖动)按不动或错位
这不是快捷键失效,而是触发条件没满足:Sublime 的列选择必须是 Alt+Shift(Windows/Linux)或 Option+Shift(macOS)+ 鼠标拖动,单独按 Alt 无效;而且它和多光标是互斥模式。
- 拖动时某行太短,光标停在该行尾——这是正常行为,不是 bug;但若视觉错位,大概率是字体非等宽(如系统默认 UI 字体),换成
Consolas或Fira Code立刻稳定 - 中英文混排时慎用:中文字符占位宽度 ≠ ASCII,Sublime 按字符数定位,视觉上会偏移
- 列选择状态下不能用
Ctrl+D、Ctrl+U或方向键扩展光标——必须先按Esc退出,才能切回多光标模式 - 如果文件是只读状态,列编辑会静默失败,状态栏右下角显示
read only,需先解除锁定
Ctrl+Click 加不了光标?drag_text 在捣鬼
默认开启的 drag_text 会让 Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)优先触发文本拖动,而不是加光标。
- 必须关掉:打开
Preferences → Settings,在用户设置里加一行:"drag_text": false - 点击位置很关键:避免点在已有选区边缘、单词中间或空行缩进处;优先点行首、行尾或纯空格位置,稳定性高很多
- 远程桌面或中文输入法下
Alt+Shift+拖动常被系统劫持,可改用命令面板:Ctrl+Shift+P→ 输入Column Selection手动开启 - 误按太多光标?按
Ctrl+U(Windows)或Cmd+U(macOS)可逐次撤销最近添加的光标,不用全删重来
真正卡住人的不是快捷键记不住,而是光标加错了位置、留不住、或者输着输着发现改了注释里的字符串——多光标下 Enter 不是换一行,Tab 不是跳焦点,Backspace 也不是删前一个字符,它们全部同步执行,且按当前语言缩进规则生效。


















