sublime多行编辑csv需先清洗为扁平单行结构,用alt+拖选列编辑最可靠,须用等宽字体、关闭自动换行,配合正则处理引号内逗号,aligntab仅视觉对齐,复杂数据应交由pandas或csvkit处理。

多行编辑前必须确认 CSV 是“扁平单行结构”
Sublime 的多行操作(列编辑、多光标)只认字符位置,不认字段语义。如果 CSV 里某字段含换行符(比如地址字段写了两行)、或双引号内有逗号("Smith, John"),直接 Alt+拖选会错位,改完后字段全乱。这类数据必须先清洗:用正则 ^\s*$ 删空行,用 "([^"]*)" 检查引号配对,再人工或脚本预处理成单行格式。
用 Alt+拖选做列级批量修改最可靠
这是真正可控的“批量改某列”的方式,比 Ctrl+D 安全得多:
使用 qbo-mileage CLI 及用户凭证,从 Airtable、Outlook 或 Google Calendar 记录生成 QuickBooks Online 里程 CSV 文件。
- 按住
Alt(Windows/Linux)或Option+Shift(macOS),鼠标垂直拖选目标列区域(例如第3列所有值) - 松开后输入新内容,所有行该列位置同步更新;按
Delete会清空整列(含空格,可能破坏对齐) - 必须用等宽字体(如
Fira Code或Consolas),且关闭View → Word Wrap - 字段含中文?中文字宽 ≠ ASCII,列编辑必偏移——先用正则把中文替成英文占位符(如
上海→SHANGHAI),操作完再换回
正则替换配合多行操作才能处理带分隔符的脏数据
单纯列编辑无法跳过引号内的逗号。比如想统一给第2列加前缀 status_,但第2列是 "active",123,"pending" 这种结构,就得先用正则锚定位置:
- 打开
Ctrl+H,开启正则模式(点.*按钮) - 查找:
^([^,]*,)([^,]*)(,.*)$(匹配首列、目标列、其余列) - 替换为:
$1status_$2$3(只动第2列,其他不变) - 注意:这个正则假设无嵌套引号;若字段本身含逗号,得先用更复杂的正则跳过引号内内容,例如
,(?=(?:[^"]*"[^"]*")*[^"]*$)
AlignTab 对齐只是视觉辅助,别当真解析
对齐后看着像表格,但 Sublime 并没改变 CSV 结构。导出给 Pandas 或 Excel 读取时,它仍按原始逗号切分——所以对齐前务必确认:
- 逗号前后无多余空格(用
,\s*替换为,) - 所有含逗号/换行/双引号的字段都已用双引号包裹(RFC 4180 规范)
- 没装 AlignTab?别用
Ctrl+Shift+P搜 “align” 就点,得先安装插件并完全重启 Sublime - 触发对齐时若输入法是中文,会把
,当全角逗号,导致失效——切换英文输入法再操作
pandas 或命令行 csvkit,别硬扛。










