Sublime列选择不是开启模式,而是按Alt(Win/Linux)或Option(macOS)+鼠标左键垂直拖动的实时动作;拖动时出现灰色矩形即生效,斜拖、用错组合键或Vintage模式启用会导致失败。

Sublime 的列选择不是“开启一个模式”,而是按住特定键+鼠标拖动的实时动作;用错组合键或环境配置不对,就只能选出普通文本块。
Windows/Linux 怎么用 Alt 键触发真正的列选择
最稳、最通用的方式是:按住 Alt,再用鼠标左键从上到下垂直拖动——拖动时看到灰色矩形选区,松开即生效。这不是“开启模式”,而是一次性操作,中途松开就退回到单光标。
- 别斜着拖:横向分量稍大,Sublime 就判定为普通文本选择,不是列
- 别用
Ctrl+Shift+↑/↓:那是扩展已有光标,不是列选入口 - 如果拖不动或光标变箭头却不响应,先检查是否启用了 Vintage 模式(
view.settings().get("command_mode")返回True就开了) - 缩进不统一(比如混用
\t和空格)会导致列边界偏移,建议粘贴前执行Convert Indent to Spaces
macOS 怎么避免 Cmd+Option 被系统快捷键劫持
macOS 原生列选择快捷键是 Cmd+Option+↑/↓,但 Mission Control 默认占用了 Cmd+Option+↑,一按就没反应——这不是 Sublime 问题,是系统级拦截。
- 临时解决:系统设置 → 键盘 → 快捷键 → Mission Control,关掉冲突项
- 更可靠替代:按住
Option(不是Cmd),再用鼠标左键垂直拖动——这个组合不被系统拦截,且原生支持 - 别信
Cmd+鼠标拖拽:默认是普通文本选择,不是列选 - 如果装了插件(如 ColumnSelect),中键可能被重绑定,但原生 Sublime 不支持中键列选
为什么列选择后粘贴只作用于第一行
常见现象:用 Ctrl+Alt+↓ 选中 5 行同一列位置,Ctrl+V 后只有第一行被替换。根本原因是 Sublime 默认把粘贴当作「覆盖当前光标位置」,而非「对每个光标分别粘贴」。
- 正确做法:先按
Delete或Backspace清空列选区域,再Ctrl+V—— 这样所有光标会同步插入新内容 - 或者用命令面板:
Ctrl+Shift+P→ 输入Insert Text at Carets,它专为多光标粘贴设计 - 剪贴板里要是多行内容(比如三行不同长度字符串),Sublime 会按行一对一覆盖,超出原列宽的部分会插入,不足的只覆盖已有字符,容易错位
Ctrl+Shift+L 是列编辑的保险绳,但有前提条件
Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)能把已选中的单列文本转为多光标——但它不校验对齐,只按绝对列数复制光标。
- 适用场景:各行目标位置列数一致(比如每行第 12 列都是等号),且没有空行打断
- 空行会导致光标跳到下一行开头,而非原列位置;解决办法是提前删空行,或用
Ctrl+Shift+J合并行再手动拆 - 如果某行缩进多、某行少,
Ctrl+Shift+L仍会硬塞进第 12 列,结果光标错位——必须先统一缩进 - 大文件(>10MB)下该操作可能卡顿,因 Sublime 需实时计算每行可视列宽
列编辑真正难的不是快捷键记不住,而是缩进、空行、系统快捷键、Vintage 模式这四点同时埋雷;任何一个没处理,都会让灰色矩形变成幻觉。


















