列选择是按住Alt(Win/Linux)或Option(macOS)+鼠标垂直拖动的实时动作,非开关模式;拖动时出现灰色矩形即生效,松开即完成,不支持中文字段直接列选,需预处理或改用AlignTab插件对齐表格。

列选择不是开关,是“按住+拖”的实时动作
Sublime Text 没有「开启列编辑模式」的设置或命令——Toggle Column Selection 在最新版中已失效,纯属残留项。所谓列选择,就是你按下修饰键、同时鼠标垂直拖动的那一个瞬间触发的行为。
最稳路径只有一条:按住 Alt(Windows/Linux)或 Option(macOS),再用鼠标左键从目标起始位置垂直向下拖动。拖动时看到灰色矩形选区,松开即生效。别试图先点菜单、再点按钮、再找开关,那只会浪费时间。
- 误操作常见:松开
Alt后才开始拖,或拖动时手抖偏了方向,结果选成斜线或单行 - 若鼠标精度不够,改用键盘:
Ctrl+Alt+↓(Win/Linux)或Cmd+Alt+↓(macOS),从当前光标列向下逐行追加光标,更准 - 想选多列?按住
Alt后,用方向键←/→扩展列宽,比鼠标拖更可控
含中文时列选择必错位,必须预处理或绕开
Sublime 的列选择按「字符数」计算位置,不是像素对齐。一个中文字符占 2 个 ASCII 列宽,但 Sublime 不区分——光标落在第 10 列,若该位置是中文“北”,实际会卡在字节中间,输入时直接劈开成“”和“”。
安全做法分两类:
- 临时规避:关闭
View → Word Wrap,字体设为等宽(如Fira Code或Consolas),再用Ctrl+Shift+P → Convert Indentation to Spaces统一缩进为空格,避免\t和空格混用导致纵向偏移 - 正则兜底:查找
([\u4e00-\u9fa5]+),替换为CHN_$1_END;编辑完再反向换回。虽多两步,但能保住中文完整性 - 更推荐:不列选中文字段,改用
Ctrl+Shift+L全选多行后,在行首/行尾插入光标,统一加前缀或补空格
列选后批量输入/删除,但不能自动对齐表格
列选择本身只是“在相同列号位置放多个光标”,它不管语义、不识别分隔符、也不校验字段边界。你用它给 100 行数据前加 ",没问题;但想靠它把 CSV 的各列右对齐,就会崩。
原因很实在:字段里可能含未引号包裹的逗号(如 Beijing, Chaoyang),列选会无视这个逻辑,硬按列数切,结果把地址劈成两列。
- 真要对齐表格,请装
AlignTab插件:Ctrl+Shift+P → Package Control: Install Package → AlignTab,装完必须完全退出 Sublime 再重开 - 对齐前先用正则处理分隔符:查找
,(?=(?:[^"]*"[^"]*")*[^"]*$),替换为,(逗号+空格),确保引号内逗号不被当分隔符 - 列选适合场景:批量加注释符号(
//)、删某列固定字符(如 Excel 粘贴后多余的\t)、统一补前缀(data_)
列选后发现改错了,撤销比重做更可靠
Ctrl+Z 在列编辑后常失灵——因为 Sublime 把多光标操作记为“一次复合动作”,有时只撤掉最后输入,前面的已固化。真正有效的办法是 Ctrl+U(软撤销),它按光标操作历史倒退,能一步退回列选前的状态。
另一个容易被忽略的点:列选区域一旦生成,就和普通选区一样受 Trim Trailing White Space 影响。如果你刚列选删了一列空格,又立刻执行 Ctrl+Shift+P → Trim Trailing White Space,可能把其他行末尾合法空格也干掉了。
- 操作前务必先执行
Ctrl+Shift+P → Trim Trailing White Space清理尾部空格,避免干扰列定位 - 列选范围超出预期?大概率是某行开头有不可见字符(如
\u200b零宽空格),用正则[\u200b-\u200f\u202a-\u202f\u2060-\u206f]查一遍 - 粘贴自 Excel 的数据,永远先确认编码:右下角点编码名 →
Reopen with Encoding→ 试UTF-8 with BOM或GBK,乱码不解决,列选必然错位

















