Sublime Text列编辑的正确打开方式
Sublime Text 不支持鼠标右键列选择,真正可靠的是 Alt+左键(Win/Linux)或 Ctrl+Cmd+左键(macOS)拖拽。

先直接说结论:Sublime Text 没有“鼠标右键列选择”这个功能——按住右键拖拽不会触发列编辑,反而可能触发系统级操作(比如 Linux 的中键粘贴或 macOS 的上下文菜单)。这是最常被误导的起点。
为什么 Shift + 右键拖拽有时看起来像列选?
有些朋友反映“Shift+右键能列选”,这其实是误判:Sublime 原生不绑定右键任何列操作。所谓成功,往往是以下情况之一:
- 你真正按的是
Shift + 鼠标左键(但误记为右键); - 装了第三方插件(如
ColumnSelect或Advanced Column Selection),它重绑了右键行为; - 系统级干扰:Windows 下某些触控板驱动会把双指按压映射为右键,而你实际在用
Alt + 左键拖拽,只是手部动作被误判。
怎么验证?关掉所有插件(Preferences → Package Control → Disable Package),再试——大概率立马失效。
真正可靠的鼠标列选择操作路径
Sublime 的列选择是“修饰键 + 左键拖拽”的瞬时动作,不是模式开关。从实用角度来看,稳定做法只有两种:
Alt + 左键(Windows/Linux):按住不放,垂直向下拖动,出现灰色矩形即生效;Ctrl + Cmd + 左键(macOS):必须两个修饰键同时按,单按Cmd或Ctrl都不行;
这里有几个关键细节得留意:
- 拖拽角度要陡——横向偏移超过 15° 就退化为普通文本选择;
- 不能松手再补按:
Alt必须从按下到拖完全程一直按住; - 空行、折叠块、软换行(
word_wrap: true)都会导致列区断裂,操作前最好先执行Ctrl+K → Ctrl+J展开所有折叠,并关闭View → Word Wrap。
列选后粘贴只作用于第一行?不是 Bug,是状态丢失
列选了 5 行,Ctrl+V 却只改了第一行——根本原因不是粘贴逻辑有毛病,而是多光标状态已经被破坏了:
- 列选本身生成的是「矩形选区」,不是多光标;要批量编辑,得先转成多光标:
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS); - 如果中间点了空白处、按了
Esc、或触发了其他命令(比如Ctrl+F),所有额外光标会立即消失; - 更稳的填值方式:列选 →
Ctrl+Shift+P→ 输入Insert Text at Carets→ 直接敲内容,不依赖剪贴板。
缩进不一致时列选错位,别硬拖,先归一化
混用 Tab 和空格、或不同 Tab width 设置下,列选会按屏幕像素对齐,而非字符位置。结果就是:看着对齐了,一输入就歪。
实操三步归一:
- 执行
Ctrl+Shift+P→ 输入Convert Indentation to Spaces; - 再执行
Ctrl+Shift+P→ 输入Set Indent Width: 4(或按需设为 2/8); - 临时禁用自动检测:
Preferences → Settings中添加"detect_indentation": false。
做完这些再列选,光标才会真正落在同一逻辑列上。否则,你拖的不是列,是幻觉。