Linux中vim块可视模式批量修改文本的核心是Ctrl+v进入可视块模式,选中矩形区域后直接编辑:I插入、A追加、c替换、r填充、s微调;结合:norm可实现按行逻辑的灵活操作。

Linux 中用 vim 块可视模式批量修改文本,核心是 Ctrl+v 进入可视块模式,选中矩形区域后直接执行编辑命令——不依赖插件、不切换模式、一次操作生效于多行对应列。
定位并进入块可视模式
光标移到要操作区域的左上角,按 Ctrl+v(不是 Shift+V),状态栏显示 -- VISUAL BLOCK --;用 j/k/l/h 或方向键向下/向上/向左/向右拖出一个矩形选区。注意:它按屏幕列计算,Tab 和空格宽度不同会影响对齐,必要时先用 :set list 显示不可见字符辅助判断。
批量插入或追加内容
选中目标列位置后:
- 按 I(大写 i),输入内容(如
#或log.),再按 Esc —— 内容会插入到每行所选列的最左端; - 按 A(大写 a),输入内容(如
;),再按 Esc —— 内容追加到每行所选列位置的行尾; - 若某几行开头缩进不一致,I 插入仍会严格对齐屏幕列,不是逻辑行首,这点要提前校准光标位置。
批量替换或修改列内字符
选中待改的矩形区域后:
- 按 c 删除选中内容并进入插入模式,输入新内容后 Esc,所有行对应位置被统一替换;
- 按 r 再按一个字符(如 rx),整列所有字符立刻变成 x,不进插入模式,适合快速填充值或占位符;
- 按 s 可逐个替换选区内每个字符(删除+插入),适合微调不对齐的局部内容。
结合 :norm 做更灵活的跨行列操作
当需要按行逻辑而非固定列做操作时(比如每行末尾找分号再改逗号):
- 先用 V 或 Ctrl+v 选中多行;
- 按 :,Vim 自动补全为
:'<,'>; - 输入
norm I#回车 → 每行行首加 #; - 输入
norm $F;x,回车 → 每行跳到行尾,向前找分号,左移一位,替换成逗号。


















