Alt/Option+左键垂直拖动是唯一可靠列选择方式:Windows/Linux用Alt,macOS用Ctrl+Cmd;需保持拖动方向陡直、避免缩进混用与中文干扰,并及时转多光标编辑。

Alt/Option + 左键垂直拖动才是唯一可靠路径
Sublime Text 没有“开启列选择模式”这回事,所谓列选择,就是一次瞬时动作:按住修饰键 + 鼠标左键垂直拖动,松手即完成。其他任何组合(比如右键、先点再按 Shift、斜着拖)都不可靠,大概率选成普通文本块。
Windows/Linux 用 Alt + 左键;macOS 必须用 Ctrl + Cmd + 左键(单按 Cmd 或 Ctrl 无效);Option 键在 macOS 上单独使用不触发列选,这是常见误判源头。
- 拖动时必须看到灰色矩形选区,才算成功触发列选择
- 横向偏移超过约 15° 就退化为普通选择——宁可慢一点,也要保证拖动方向陡直
- 中途松开
Alt或鼠标,整个操作就中断,光标回到单行状态
列选后不能直接输入?必须转多光标才能批量编辑
你列选了 5 行,按下 a 却只改了第一行——这不是 bug,是 Sublime 的设计逻辑:列选择生成的是「矩形选区」,不是「多个独立光标」。要批量覆盖或插入,得手动转一下。
- Windows/Linux:选中后立刻按
Ctrl+Shift+L,把矩形选区拆成每行一个光标 - macOS:对应快捷键是
Cmd+Shift+L - 如果中间点了空白处、按了
Esc、或切到别的标签页,所有额外光标会瞬间消失 - 更稳的填值方式:列选 →
Ctrl+Shift+P→ 输入Insert Text at Carets→ 直接敲内容,不依赖剪贴板和焦点状态
缩进不一致、含中文、有空行?列选必错位
列选择按字符列数对齐,不是像素或视觉对齐。一旦混用 \t 和空格、Tab width 设置不统一、某行有中文、或存在折叠/空行,灰色矩形就会歪掉。
- 粘贴自 Excel 的数据,务必先执行
Convert Indentation to Spaces,再Trim Trailing White Space - 含中文时,字体必须设为等宽(如
Fira Code),并关闭View → Word Wrap - 有折叠代码块?先
Ctrl+K→Ctrl+J展开全部,否则列区会在折叠处断裂 - 想避开中文宽度陷阱:光标定位到首行目标列(如第 12 列),用
Ctrl+Shift+↓向下逐行追加光标,比鼠标拖更准
Vintage 模式、插件、系统设置都会劫持列选行为
按了 Alt + 拖不动?大概率是环境干扰。Sublime 原生列选非常脆弱,稍有配置偏差就失效。
- 检查是否启用了 Vintage 模式:
Ctrl+`打开控制台,输view.settings().get("command_mode"),返回True就说明开了,它会吃掉Ctrl和Alt组合键 - 关掉所有插件测试:菜单
Preferences → Package Control → Disable Package,逐个禁用,尤其注意ColumnSelect类插件——它们可能重绑了右键或中键 - macOS 用户注意系统级干扰:设置里若开了「鼠标键」或「粘滞键」,
Ctrl+Cmd+左键可能被截断 - Linux X11 下,中键默认是粘贴,别信“中键拖拽能列选”,那是系统行为,不是 Sublime 的
列选择本身不保存状态、不依赖模式开关、不兼容软换行和混合缩进——这些不是限制,而是它的设计前提。真正卡住人的,从来不是“怎么按”,而是没意识到:**每一次列选,都是一次需要前置清理、精确起手、即时转换的原子操作**。











