Sublime Text列选择本质是按字符坐标批量操作,非对齐工具;须先统一缩进(转空格+删尾空格)、处理编码、禁用换行、用等宽字体,推荐Alignment插件自动对齐,避免手动拖选导致错位。

列选择在 Sublime Text 中不是“对齐工具”,而是“按字符列坐标批量操作”的机制;直接拖选就对齐,基本等于赌运气——尤其遇到制表符、中文、缩进不一致时,光标落点必然偏移。
列选择前必须统一缩进和空格
Excel 粘贴或日志导出的文本常混用 \t 和空格,Sublime 按“字符数”算列,\t 在不同设置下可能占 2/4/8 列,导致纵向错位。不清理就列选,第 3 行会比第 1 行少选 2 个字符,但你看不出异常。
- 全选 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车(强制转空格) - 再执行
Ctrl+Shift+P→Trim Trailing White Space(删行尾空格,避免干扰列计算) - 若含中文且出现乱码,点右下角编码名 →
Reopen with Encoding→ 试UTF-8 with BOM或GBK
含中文时别用鼠标拖选列
中文字在等宽字体下视觉宽度 ≈ 2 ASCII 字符,但 Sublime 的列选择只认 Unicode 码点位置(即“第 10 个字符”),不是像素位置。某行第 10 个字符是中文“你”,光标实际落在该字中间,输入会把它劈成“亻”和“尔”。
- 关闭
View → Word Wrap(软换行会破坏列坐标系统) - 字体必须设为等宽(如
Fira Code、Consolas) - 更稳做法:光标定位到首行目标列(如第 15 列)→
Ctrl+Alt+↓(Win/Linux)向下逐行加光标,比拖更准 - 或先正则预处理:
查找 ([\u4e00-\u9fa5]+),替换为 CHN_$1_END,编辑完再反向换回
对齐字段别硬敲空格,用 Alignment 插件
想让 CSV 或键值对里的 , 或 : 垂直对齐?手动列选补空格只适合 5 行以内。100 行里只要有一处未引号包裹的逗号(如地址字段 "Beijing, Chaoyang"),列选就会切错位置。
- 装插件:
Ctrl+Shift+P→Package Control: Install Package→ 搜Alignment→ 回车(装完不用重启) - 配置分隔符:
Preferences → Package Settings → Alignment → Settings – User,填入:{ "alignment_chars": [":", "=", ",", "|"] } - 选中多行 →
Ctrl+Alt+A(注意:单行无效;某行没出现alignment_chars中的字符,该行会被跳过) - 若对齐后爆炸式撑宽,调小字号或临时开启
View → Word Wrap查看效果
粘贴多行内容进列选区要防错位
从外部复制三行不同长度的字符串(如 a、bb、ccc),粘贴进列选区域时,Sublime 是“逐行一对一覆盖”:第 1 行粘贴内容写入第 1 行对应列位置,超出原列宽部分会插入,不足则只覆盖已有字符——结果就是每行新增内容长度不一,整体又歪了。
- 稳妥法:列选后先敲一个字符(如
:),让它播撒到所有行;Ctrl+Z撤回;再Ctrl+V粘贴,此时被当作“一次输入”处理 - 大文件(>10MB)慎用列选择,滚动卡顿是常态,因 Sublime 需实时重算每行可视列宽
- 折叠代码块内无法列选,必须先
Ctrl+K → Ctrl+J展开
真正难的从来不是怎么按快捷键,而是你根本不知道哪一行悄悄混了个 \t,或者某个中文把列坐标顶偏了两格——这些错位不会报错,只会让你改完发现一半没生效。

















