notepad++列对齐首选列编辑模式(alt+鼠标拖选),其次用正则分步清洗再替换;对键值对可用align插件,纯正则仅适用于结构简单、无嵌套干扰的文本。

用正则替换实现列数据右对齐或左对齐
Notepad++ 本身没有“列对齐”按钮,但通过 Ctrl+H 正则替换 + 空格/制表符控制,能稳定实现 CSV、日志、配置项等文本的列对齐效果。关键不是“自动”,而是“可控”——你得告诉它每列宽多少、怎么补空格。
常见场景:处理类似这样的原始文本(逗号分隔,但长度不一):
name,age,city Alice,28,Beijing Bob,5,New York Charlie,33,San Francisco
想让每列按最大宽度右对齐,步骤如下:
- 先用正则
^([^,]*),([^,]*),([^,]*)$捕获三列(注意勾选「正则表达式」和「匹配新行」) - 替换为:
\x20\x20\x20\x20\1\x20\x20\x20\x20,\x20\x20\x20\x20\2\x20\x20\x20\x20,\x20\x20\x20\x20\3\x20\x20\x20\x20(即手动加空格)——这太糙,不推荐 - 更可靠做法:分两步——先统一用制表符分隔(
,\s*→\t),再用「列编辑模式」Alt+鼠标拖选第二列起始位置,按Alt+C→ 「插入数字」或「插入文本」补空格,最后用「Edit → Blank Operations → Trim Trailing Space」收尾
正则批量对齐等号/冒号两侧内容
配置文件(如 .env、INI、YAML 前身)中频繁出现 KEY=VALUE,想让所有 = 垂直对齐,不能靠肉眼调空格。
正确做法是用 Align 插件(Plugin Admin 安装),但若只允许用正则,可这样逼近效果:
- 第一步:确保所有行末无多余空格 —— 先执行
Edit → Blank Operations → Trim Trailing Space - 第二步:查找
^(.+?)\s*=\s*(.+)$,替换为\1 = \2(统一空格格式) - 第三步:再查
^([^=]+)=,替换为\1 =(用四个 占位,实际用空格或 Tab 更稳妥)——但此法仅适用于列数少、最长 KEY 已知的场景 - 真正稳的路径:安装
Align插件后,菜单走Plugins → Align → Align by regex,填(?(排除 <code>http://中的冒号干扰),勾选Pad left,再手动微调 Tab 宽度
正则删除干扰项后再对齐,避免误匹配
直接对齐常失败,是因为文本里混着注释、空行、嵌套符号(比如 JSON 字符串里的 = 或逗号)。正则不加防护,就会把 "url": "https://a=b" 里的 = 也当对齐点。
安全做法是先清洗,再对齐:
- 删空行:
^\s*$→ 空(勾选「正则表达式」+「匹配新行」) - 删注释行(# 或 // 开头):
^\s*[#/]\s.*$→ 空 - 跳过引号内内容:正则无法真正跳过字符串上下文,所以对含 JSON/YAML 的文件,别硬上正则对齐——改用
NppExec调prettier --write --parser json "$(FULL_CURRENT_PATH)" - 对纯键值对文件,可用
^[^#"\/\r\n]+=[^#\r\n]*$锁定有效行再操作,降低误伤概率
列编辑模式比正则更准、更快对齐多行
很多人卡在“必须用正则”,其实 Notepad++ 最适合列对齐的不是正则,而是 Alt+鼠标拖选 或 Alt+Shift+方向键 进入列选择模式。
比如让下面三行的第二字段右对齐:
id: 1001, name: Alice, score: 95 id: 2, name: Bob, score: 87 id: 34, name: Charlie, score: 92
操作很简单:
- 打开
View → Show Symbol → Show White Space and TAB,看清空格结构 - 按住
Alt,鼠标从第一行n列拖到第三行n列,选中“name:”起始列区域 - 按
Delete清掉已有空格,再按Space补足统一宽度(比如都补到第 12 列) - 最后全选 →
Edit → Blank Operations → Trim Trailing Space防止对齐后尾巴带空格
列编辑本质是“视觉对齐”,不依赖语法,也不怕引号或注释干扰——这点比任何正则都实在。但注意:它不感知语义,所以别指望它自动识别“第3个逗号后才是值”,得你自己框准位置。











