Alt/Option+垂直拖动是唯一可靠触发方式,Sublime无独立列选择模式,必须严格垂直拖动且全程按住Alt/Option,斜拖或松手重按均失败;中文混排需预处理,等宽字体、统一缩进、关闭自动检测等为必要前提。

Alt/Option+垂直拖动是唯一可靠触发方式
Sublime 没有“开启列选择模式”这回事,所谓列选择,就是你按住 Alt(Windows/Linux)或 Option(macOS),同时鼠标左键从上到下**严格垂直拖动**的那一下——松手即生效,灰色矩形块出现才算成功。斜着拖哪怕 5°,Sublime 就判定为普通文本选择;中途松开再按,就退回单光标。
常见失败现象:拖出来是带波浪线的行内选区,不是矩形块。原因基本就两条:Alt 或 Option 没按住,或者拖动轨迹含横向分量。别信 Ctrl+鼠标拖 或 Cmd+鼠标拖,那是系统级文本选择,不是列选。
中文混排时列位置会偏移,必须预处理
Sublime 列选择按「字符数」计算列位置,不是像素对齐。中文字宽 ≈ 2 个 ASCII 字符,一旦某行第 10 列是中文“李”,光标实际落在该字中间,输入会把字劈开(如输 a 变成“李a”)。这不是 bug,是底层机制决定的。
安全做法:
- 关闭
View → Word Wrap,防止换行干扰列坐标 - 字体必须设为等宽(如
Fira Code、Consolas),非等宽字体下列选完全不可靠 - 含中文字段时,先用正则替换:查找
([\u4e00-\u9fa5]+),替换为CHN_$1_END;编辑完再反向换回 - 更稳的启动方式:光标定位到首行目标列(比如第 15 列),按
Ctrl+Shift+↓(Win/Linux)或Cmd+Shift+↓(macOS)逐行追加光标,比鼠标拖更准
缩进不统一直接导致列错位,必须先清理
从 Excel 粘贴的数据常混用 \t 和空格,表面看着对齐,实际第 3 行用的是 4 个空格,第 7 行用的是 1 个 \t(等效 8 个空格)。列选时 Sublime 按显示位置算,光标纵向一拉就偏了。
操作顺序不能错:
- 全选 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车(统一转空格) - 再执行
Ctrl+Shift+P→Trim Trailing White Space(删尾部空格) - 如果右下角编码显示异常(如中文变问号),点它 →
Reopen with Encoding→ 试UTF-8 with BOM或GBK - 临时关掉
"detect_indentation": true(在设置里加这一行),避免自动识别干扰列计算
列选完不转多光标,编辑只作用于第一行
列选生成的是一个矩形选区,不是多个独立光标。默认状态下,敲 ; 或粘贴 Ctrl+V,只有第一行响应——这是新手踩坑率最高的地方。
必须立刻补一步:Ctrl+Shift+L(Win/Linux)或 Cmd+Shift+L(macOS),把矩形块拆成每行一个光标。之后再输入、删除、粘贴,才会同步生效。
注意两个限制:
- 空行会导致光标跳到下一行开头,而非原列位置;解决办法是提前删空行,或用
Ctrl+Shift+J合并后再手动拆 -
Ctrl+Shift+L不校验对齐,只按绝对列数复制光标;如果某行比其他行短,光标会落到行末,而不是“空缺位置”
列选择真正难的不是操作本身,而是你永远不知道当前文件里藏着多少个 \t、零宽字符、BOM 或被 Vintage 模式劫持的快捷键。每次开始前花 10 秒执行清理和检查,比选错后重来五次更省时间。











