Sublime列选择需先统一缩进和清理尾空格,否则因制表符与空格宽度差异及中文字符占位问题导致错位;操作前须转空格、删尾空、设等宽字体,并用Ctrl+Alt+↓追加光标。

列选择前必须先统一缩进和清理尾空格
直接对从 Excel 粘贴过来的文本列选,八成会错位——因为 Excel 默认用 \t 分隔,而 Sublime 按字符位置计算列边界,\t 和空格宽度不一致,光标一拉就偏。你看到的“对齐”,只是渲染假象。
实操建议:
- 全选 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车,把所有\t强制转成空格 - 再执行
Ctrl+Shift+P→Trim Trailing White Space,删掉每行末尾隐形空格(否则列选区域底部会参差) - 如果中文乱码,点右下角编码名(如
UTF-8)→Reopen with Encoding→ 试UTF-8 with BOM或GBK,确认后点Save with Encoding
含中文时别靠鼠标拖,改用 Ctrl+Alt+↓ 向下追加光标
Sublime 的列选择是按“字符索引”算的,不是像素对齐。一个中文占 2 列宽,鼠标垂直拖动时,某行第 10 个字符如果是中文“北”,光标实际落在“北”字中间,输入会劈开汉字。
更稳的做法:
- 先把光标定位到首行目标列(比如你想编辑第 15 列),按
Ctrl+Alt+↓(Win/Linux)或Cmd+Option+↓(macOS),逐行向下加光标 - 如果中间有空行,光标会跳到下一行开头——提前用
Ctrl+H查找^\s*$(空行正则),替换为空,再操作 - 字体必须设为等宽(如
Fira Code、Consolas),非等宽字体下列选完全不可信
粘贴多行内容前,先清空列选区再 Ctrl+V
常见现象:列选了 5 行同一列位置,Ctrl+V 后只有第一行被替换。这是因为 Sublime 默认把粘贴当作“覆盖当前光标”,而不是“向每个光标插入剪贴板内容”。
正确流程:
- 列选后,先按
Delete或Backspace清空该列区域(所有行同步删除) - 再
Ctrl+V,此时剪贴板内容会完整播撒到每行对应位置 - 如果剪贴板本身是多行(比如三行不同长度字符串),Sublime 会按行一对一覆盖,容易错位;此时应确保剪贴板是单行内容,或改用命令面板:
Ctrl+Shift+P→Insert Text at Carets
对齐 CSV 字段不能只靠列选,得用 AlignTab + 正则预处理
想让逗号对齐成“伪表格”?直接列选补空格,10 行还行,100 行必崩。字段里若有未引号包裹的逗号(如地址 Beijing, Chaoyang),列选会切错位置。
可靠流程:
- 装插件:
Ctrl+Shift+P→Package Control: Install Package→ 搜AlignTab→ 回车(装完必须完全退出 Sublime 再重开) - 打开正则替换(
Ctrl+H,点.*按钮),查找:,(?=(?:[^"]*"[^"]*")*[^"]*$),替换为:,(逗号+空格),跳过引号内的逗号 - 全选 →
Ctrl+Shift+P→AlignTab: Align On→ 输入,(注意有空格)→ 回车
列选择本身不解决语义对齐,它只管字符位置;真正要按字段对齐,得先让分隔符在结构上可识别,再交给专用工具处理。

















