列选择是按住Alt/Option键垂直拖动的瞬时操作,非模式化;需用Ctrl+Shift+L转为多光标才能批量编辑;对齐依赖纯空格缩进、无中文/制表符干扰。

列选择不是模式,是“按住+拖”的瞬间动作
Sublime Text 没有「开启列编辑模式」这个开关,Toggle Column Selection 命令在最新版中纯属残留,点了也没用。所谓列选择,就是你按下修饰键、鼠标拖动那一下触发的实时行为——松手即完成,不存在“进入/退出”状态。
最稳的操作路径只有一条:Alt(Windows/Linux)或 Option(macOS)按住不放,再用鼠标左键从起始位置垂直向下拖动。灰色矩形一出现,就说明成功了。
- 斜着拖?横向位移稍大,Sublime 就判定为普通文本选择,不是列
- 先点鼠标再按
Alt?光标跳转或只选中首尾两行,无效 - 中键拖拽?原生不支持,Linux 下大概率触发系统粘贴,不是列选
列选完直接敲字只改第一行?漏了 Ctrl+Shift+L
列选生成的是一个矩形选区,不是多个光标。Sublime 默认只对第一个位置执行输入/删除操作,其余行完全不动——这是新手踩坑率最高的地方。
正确流程是:列选完成后,立刻按 Ctrl+Shift+L(macOS 用 Cmd+Shift+L),把矩形块拆成每行一个独立光标。这时再敲 //、; 或粘贴内容,才会同步作用于所有行。
- 已误输?按
Ctrl+Z撤回,补按Ctrl+Shift+L即可挽救 - 粘贴多行内容会崩:剪贴板含换行符时,
Ctrl+V会把整块内容插到每个光标处;确保只粘单行,或先清空剪贴板 - 空行会跳列:列选跨过空行时,光标自动落到下一行开头;提前删空行,或用
Ctrl+Shift+L后手动调光标
含中文或制表符时列选错位?必须先清理缩进和编码
列选择本质是按字符列数定位,极度依赖每行实际可见字符的水平对齐。一旦混入 \t、全角空格、零宽字符,或中文字宽 ≈ 2 ASCII 字符,视觉列和物理列就彻底脱钩。
例如第 5 行缩进用 \t,其余行用 4 个空格,纵向一拉就偏了;又或者某行第 10 个字符是中文“中”,光标实际落在字中间,输入会把字劈开。
- 全选 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车,统一转空格 - 再执行
Ctrl+Shift+P→Trim Trailing White Space,删掉每行末尾多余空格 - 乱码(如中文变问号)?点右下角编码名 →
Reopen with Encoding→ 试UTF-8 with BOM或GBK,确认后点Save with Encoding - 含中文字段时,先正则替换
([\u4e00-\u9fa5]+)为CHN_$1_END,编辑完再反向换回
对齐 CSV 或参数列表?别硬列选,用 AlignTab + 正则预处理
想让逗号对齐成“伪表格”,直接列选补空格或手动敲空格,10 行还行,100 行必崩。因为字段本身可能含未引号包裹的逗号(如地址字段 Beijing, Chaoyang),列选会把它们当分隔符切错。
可靠流程是:AlignTab 插件配合正则过滤引号内逗号,再按分隔符对齐。
- 装插件:
Ctrl+Shift+P→Package Control: Install Package→ 搜AlignTab→ 回车(装完必须完全退出 Sublime 再重开) - 正则替换:
Ctrl+H,点.*按钮,查找,(?=(?:[^"]*"[^"]*")*[^"]*$),替换为,(逗号+空格) - 全选 →
Ctrl+Shift+P→AlignTab: Align On→ 输入,(注意有空格)→ 回车 - 若对齐后列宽爆炸,调小字号或临时开启
View → Word Wrap查看,导出前关闭
真正麻烦的从来不是怎么选,而是选之前没看清数据里藏了多少 \t、中文、引号和空行——这些细节不处理,列选越快,错得越狠。

















