sublime text 清洗结构化文本需先统一缩进和编码:convert indentation to spaces + trim trailing white space,再禁用换行、设等宽字体,用 ctrl+shift+↓列选;中文字段用正则预处理,csv 对齐用 aligntab 插件配合逗号正则,批量操作优先 ctrl+d 而非 alt+f3。

Sublime Text 本身不是数据清洗工具,但配合正确快捷键和预处理步骤,能高效完成结构化文本的清洗与对齐——关键不在“有哪些快捷键”,而在“哪些组合必须按顺序执行”。
列选择前必须统一缩进:Convert Indentation to Spaces + Trim Trailing White Space
从 Excel 粘贴进来的文本,表面整齐,实际混着 \t、4空格、2空格甚至全角空格。直接 Alt+鼠标拖选 会纵向错位,尤其第3行用制表符、其余用空格时,光标根本对不齐。
- 先全选 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车,把所有\t转成空格(默认转4个,可在Preferences → Settings改tab_size) - 再
Ctrl+Shift+P→Trim Trailing White Space,删掉每行末尾隐形空格——否则列选后补空格会多出一列空白 - 若粘贴后中文变问号,点右下角编码名(如
UTF-8)→Reopen with Encoding→ 试UTF-8 with BOM或GBK,确认后点Save with Encoding
含中文字段时别信鼠标拖选:用 Ctrl+Shift+↓ 精准追加光标
Sublime 的列选择是按“字符位置”算的,不是像素。一个中文占2字符宽,某行第10列若是个汉字,光标实际落在该字中间,输入会劈开字形(如“北京”变成“北|京”再输内容就崩了)。
- 关闭
View → Word Wrap,防止自动换行干扰列计算 - 字体必须设为等宽(如
Fira Code、Consolas),非等宽字体下列选完全失效 - 安全做法:光标定位到首行目标列(比如想改第15列),按
Ctrl+Shift+↓(Win/Linux)或Cmd+Shift+↓(macOS)向下逐行追加光标——比鼠标拖更准,且避开中文宽度陷阱 - 若字段含中文又必须批量替换,先正则替换:
([\u4e00-\u9fa5]+)→CHN_$1_END;编辑完再反向换回
对齐 CSV 字段不能靠空格:AlignTab 插件 + 正则预处理逗号
想让 name,age,city 垂直对齐?手动敲空格或列选补空格,10行还行,100行必错——因为地址字段可能含未引号包裹的逗号(如 Beijing, Chaoyang),列选会把它当分隔符切错。
- 装插件:
Ctrl+Shift+P→Package Control: Install Package→ 搜AlignTab→ 回车(装完必须完全退出 Sublime 再重开) - 打开正则替换(
Ctrl+H,点.*按钮),查找:,(?=(?:[^"]*"[^"]*")*[^"]*$),替换为:,(逗号+空格),跳过引号内的逗号 - 全选处理后文本 →
Ctrl+Shift+P→AlignTab: Align On→ 输入,(注意带空格),即可按逗号对齐成伪表格
批量提取/替换固定模式字段:Alt+F3 不如 Ctrl+D + 正则组合稳
Alt+F3 是全量爆破式匹配,一旦文档里有注释、日志、测试数据含相同关键词(如 user_id),就会误选;而 Ctrl+D 是增量可控的,适合清洗场景。
- 想只改 JSON 中的
"id"字段值,不要动注释里的// id: 123:光标停在第一个合法"id"上 → 连按Ctrl+D,每按一次加一个匹配,跳过不需要的就按Ctrl+K, Ctrl+D跳过当前高亮 - 提取所有手机号:正则查找
1[3-9]\d{9}→Ctrl+Enter全选匹配项 →Ctrl+C复制 → 新建文件粘贴 - 误触
Alt+F3后最稳退出方式是Ctrl+U(软撤销光标操作),不是狂按Esc——后者容易残留光标导致后续粘贴错位
真正卡住效率的,从来不是记不住快捷键,而是跳过预处理直接上手列选,或在中文混排时硬用鼠标拖——这两步一错,后面所有操作都在错位基础上叠加错误,越洗越乱。











