Windows/Linux下Alt+鼠标左键垂直拖动实现列选,macOS需Ctrl+Cmd+左键;键盘操作用Ctrl+Shift+↑/↓纵向扩展光标,列选后须转多光标或用Insert Text at Carets命令粘贴。

Windows/Linux 下 Alt+鼠标左键拖动才是真列选
Sublime Text 没有“开启列选择模式”这回事,所谓列选就是一次性的修饰键+拖动动作。Windows 和 Linux 用户必须按住 Alt 键不放,再用鼠标左键从上到下垂直拖动——拖动时出现灰色矩形块,松手即生效。这不是开关,中途松开 Alt 或先点鼠标再按 Alt,都会变成普通文本选择。
常见错误包括:
- 误用
Ctrl+拖拽:默认触发普通文本选择,不是列选 - 斜向拖动角度超过 15°:Sublime 会退化为行内扩展,尤其在末尾有空格的行上更明显
- 拖动经过折叠代码块或空行:列区直接断裂,建议操作前先执行
Ctrl+K→Ctrl+J展开所有折叠 - 系统启用了 Vintage 模式:
view.settings().get("command_mode")返回True就说明被劫持了,Alt行为可能失效
macOS 用户必须同时按 Ctrl+Cmd+左键
macOS 上单按 Cmd 或单按 Ctrl 都无法触发列选;必须两个修饰键同时按下,再配合鼠标左键垂直拖动。部分用户误以为 Option(即 Alt)可用,那是旧版行为,当前稳定版本已改为 Ctrl+Cmd 组合。
容易被忽略的干扰项:
- 系统级快捷键冲突:比如 Mission Control 占用了
Cmd+Option+↑,会导致键盘列选失效;建议临时关闭系统快捷键设置 - 触控板驱动映射异常:某些品牌驱动会把双指按压识别为右键,造成“Shift+右键能列选”的错觉,实则仍是左键在起作用
- 输入法处于激活状态:中文输入法常拦截
Ctrl+Cmd,切换回英文输入法再试
键盘操作比鼠标更精准:Ctrl+Shift+↑/↓(Win/Linux)
鼠标拖动易偏移,尤其高缩放或跨屏编辑时。更稳的方式是用方向键纵向扩展光标:把光标定位到目标列位置(如第 8 列),然后按 Ctrl+Shift+↑ 或 Ctrl+Shift+↓ 向上/下逐行添加光标。这个操作生成的是多光标,不是矩形选区,但编辑效果一致。
注意几个关键点:
- 该快捷键依赖当前光标横向位置严格对齐——如果某行该列是空白或缩进不一致,光标会跳到行首或行尾
- 想覆盖更多行,可重复按
Ctrl+Shift+↓,或配合Ctrl+G跳转到目标行后再加光标 - 别和
Ctrl+Shift+L混淆:Ctrl+Shift+L是把已选中文本按行拆成多个光标,不是纵向扩展
列选后不能直接粘贴?先转多光标或用 Insert Text at Carets
你列选了 5 行、按 Ctrl+V 却只改了第一行,这不是 Bug,是因为列选生成的是「矩形选区」,不是多光标状态。Sublime 默认只对活跃光标粘贴,其他光标早已丢失。
安全流程只有两种:
- 列选 → 按
Ctrl+Shift+L(Win/Linux)转为多光标 → 删除原内容 → 输入新内容(不要用Ctrl+V) - 列选 →
Ctrl+Shift+P打开命令面板 → 输入Insert Text at Carets→ 直接敲入要插入的文本(不走剪贴板,无错位风险)
最易被忽视的细节:只要中间点了空白处、按了 Esc、切换了标签页,所有额外光标立刻消失。列编辑不是“开着的”,它非常脆弱,靠的是连续操作流。


















