vim列编辑核心是可视块模式(ctrl+v),支持批量插入(i/a)、替换(c/s/r)及:norm进阶操作,原生高效处理多行对齐文本。

在 Vim 中实现列编辑(也叫“块选择”或“可视块模式”)和批量操作,关键不是靠“高级模式”这个模糊说法,而是熟练使用 可视块模式(Visual Block Mode) 配合其他核心命令。它不依赖插件,是 Vim 原生强大功能之一,特别适合修改对齐的多行文本、添加前缀、替换列数据等场景。
进入并使用可视块模式(Ctrl+V)
这是列编辑的起点:
- 普通模式下按 Ctrl+V(不是 Shift+V,后者是行选择),光标变成方块状,表示进入可视块模式;
- 用方向键或 h/j/k/l 移动,选中一个矩形区域(注意:它会严格按屏幕列对齐,包括空格和制表符);
- 选中后,可直接输入命令 —— 大多数操作只影响所选列范围内的每一行对应位置。
批量插入/添加内容(I 和 A)
这是最常用的列编辑操作:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 选中一列(比如多行开头空白处)→ 按 I(大写 i),进入“插入前缀”状态;
- 输入要添加的内容(如 # 或 log.);
- 按 Esc,Vim 会自动将这段内容插入到**每一行所选列位置的最左端**;
- 若想在每行末尾追加(如加分号),选中各行末尾列 → 按 A → 输入 → Esc,同样批量生效。
替换与修改列内字符(c、s、r)
对已选中的矩形区域做内容替换:
- 选中目标列(例如第5–7列的多个数字)→ 按 c 删除并进入插入模式,输入新内容 → Esc,所有行对应列被统一替换;
- 按 s 可删除单个字符并立即插入(适合逐列微调);
- 按 r + 一个字符(如 rx),可将整列所有字符替换成 x(不进插入模式,高效批量改单字符)。
结合 :norm 执行跨行列命令(进阶批量)
当列编辑不够灵活(比如要对每行不同位置执行函数式操作),可用 :norm(normal mode command):
- 先用 V(行选择)或 Ctrl+V(块选择)选中多行;
- 按 :,Vim 自动补全为 :'(代表当前选区);
- 输入 norm I# → 回车,效果等同于对每行执行 “跳到行首 + 插入 # ”;
- 还可嵌套 Ex 命令,如 norm $F;hxi, 表示:到行尾 → 向前找分号 → 左移一位 → 替换该字符为逗号。
掌握可视块模式及其组合用法,不需要额外插件或复杂配置,就能高效完成绝大多数列级编辑任务。关键是理解“选中的是矩形区域”,而非逻辑列,注意空格与 tab 的宽度差异可能影响对齐效果。










