sublime中鼠标中键拖动无法实现多行编辑,因其默认为粘贴功能;可靠方式是alt/option+左键拖动后按ctrl/cmd+shift+l拆光标,或ctrl/cmd+左键点击(需禁用drag_text),或先选多行再按ctrl/cmd+shift+l。

鼠标中键拖动在 Sublime 里根本不能直接实现多行编辑
Sublime 默认把鼠标中键(滚轮点击)当作“粘贴剪贴板内容”用,不是列选择或加光标。哪怕你拖动中键,它也不会生成多光标,更不会竖向选中——只会反复插入剪贴板里的文本,甚至可能覆盖掉你正在写的代码。
为什么 Ctrl+中键 或 Cmd+中键 也大概率失败
虽然文档提过 Ctrl+中键(Windows/Linux)或 Cmd+中键(macOS)可触发列选择,但实际中这组组合键极不稳定:
- macOS 输入法(尤其中文输入法)会劫持
Cmd+中键,直接忽略 Sublime 的响应 - Windows 下部分触控板或鼠标驱动把中键拖动识别为“滚动”,而非“按下+移动”
- 即使触发成功,中键列选不支持松手后补按
Ctrl+Shift+L拆光标——它压根不生成可拆的矩形选区,而是直接执行粘贴
真正能靠鼠标完成多行编辑的可靠方式
放弃中键,改用这三种经实测 100% 响应的鼠标操作:
-
Alt+左键拖动(Windows/Linux)或Option+左键拖动(macOS):生成矩形选区,之后必须补按Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)才能转成多光标;注意字体必须是等宽(如Consolas),否则视觉对齐但光标错位 -
Ctrl+左键点击(Win/Linux)或Cmd+左键点击(macOS):手动逐个加光标,但前提是用户设置里已禁用drag_text(即"drag_text": false),否则点击会拖动文本而非加光标 - 先用鼠标拖选多行文本(确保覆盖每行末尾的换行符),再按
Ctrl+Shift+L:这是最稳的“选中→拆光标”路径,比任何中键方案都可靠
列选择后只改了第一行?问题出在没拆光标
很多人 Alt+左键拖动 后直接打字,发现只有首行变化。这不是 Bug,是 Sublime 的设计逻辑:Alt+拖拽 产生的是单个矩形选区,输入只作用于第一个位置。必须手动补一步:Ctrl+Shift+L 把矩形切开,让每行末尾各有一个独立光标。漏掉这步,所有后续输入都只生效一次。
真正容易被忽略的点是:列选择对 Tab 宽度、软换行、混合空格/Tab 极其敏感。同一列在不同行可能对应不同字节偏移,光标看着对齐,实际位置漂移。批量操作前,先用 Convert Indentation to Spaces 统一缩进,比调中键强十倍。











