alt+鼠标拖选列编辑是删除特定列的唯一稳解,适用于日志、yaml、csv等场景;需先关闭自动换行,再垂直拖选目标列范围后删除,不依赖分隔符、不误吞换行符、不惧中文乱码。

删特定列,别碰正则——Alt+鼠标拖选列编辑是唯一稳解。 正则在列对齐不严格、含混合空格/制表符、或行尾不齐时极易错位,而列编辑所见即所得,不依赖分隔符、不误吞换行符、不惧中文乱码。
用 Alt+鼠标拖选删除固定位置列
这是 Notepad++ 原生支持、零配置、最可靠的列删除方式,适用于日志、YAML 缩进块、CSV 对齐列等场景。
- 必须先关闭「自动换行」(
View → Word wrap不勾选),否则纵向拖选会因折行而错列 - 按住
Alt键不放,鼠标左键从目标列起始位置(例如第 1 列)按下,垂直向下拖到最后一行对应列(例如第 4 列),松手即形成矩形选区 - 按
Delete或Backspace即可删除——不足列宽的行,删到行尾为止,不会报错或中断 - 若要删的是缩进空格(如 YAML 文件每行开头 2 个空格),直接从第 1 列拖到第 2 列即可,比手动逐行删快 10 倍以上
正则删列只适用于分隔符明确的结构化文本
当列由逗号、制表符等统一分隔,且你想删第 N 个字段(而非物理位置第 N 列)时,正则才适用;否则极易误删。
- 删 CSV 第 3 列(逗号分隔):查找
^([^,]*,){2}([^,]*),(.*)$,替换为\1\3 - 删 TSV 第 2 列(制表符分隔):查找
^([^\t]*\t){1}([^\t]*)\t(.*)$,替换为\1\3 - 注意:
.默认不匹配换行符,务必取消勾选「. 匹配换行符」,否则跨行匹配会导致整块塌陷 - 如果分隔符混用(如空格+制表符)、或字段内含分隔符(如 CSV 中带逗号的字符串),正则立刻失效,别硬扛
删第一列但文件没对齐?先标准化再列编辑
像 YAML 或代码文件中,看似“第一列”其实是缩进空格/制表符数量不一致,直接 Alt 拖选会删歪。这时得先归一化。
- 先用正则批量统一缩进:查找
^(\s*),替换为\1(不起作用?说明你没开正则模式)→ 实际目的是打开「替换」面板后,手动确认缩进是否可识别 - 更实操的做法:用「编辑 → 行操作 → 修剪首尾空格」清理每行开头多余空格,再用「视图 → 显示符号 → 显示空格与制表符」看清实际缩进结构
- 确认所有行首缩进都是 4 个空格?那就 Alt 拖选第 1–4 列;如果是混用 Tab 和空格,先「编辑 → Blank Operations → TAB to Space」转成空格再操作
- 别信「全选 → 右键删首空格」——Notepad++ 没这功能,那是 IDE 才有的智能删缩进
真正容易被忽略的点是:列编辑不看语义,只认屏幕坐标。哪怕某行是注释、某行是字符串、某行末尾多两个空格,它都照删不误。所以删之前,务必用「查看 → 符号 → 显示空格与制表符」扫一眼真实结构——眼睛看到的对齐,未必是光标能精准框住的列。











