所在位置:

vim的纵向编辑模式

vim的纵向编辑模式是非常实用和灵活的,特别是用在批量修改某一列的数据或者批量给每一行添加数据的时候,往往要比正则的替换更方便,下面是一些常用的方法

在命令模式下启动进入纵向编辑模式

  • 在windows下是用ctrl+q
  • 在linux下是用ctrl+v

注意:这时在状态栏底下就会出现 ”-- 可视块 --“,代表可以操作块了

批量修改某一列的数据,假设有如下的数据

192.168.0.10
192.168.0.11
192.168.0.12
比如把192改为193,操作如下:
  • 把光标移动到最顶部 1922
  • linux 下按 ctrl+q
  • 进入块编辑模式,按下 j
  • 选择需要修改的 2
  • 按下 r, 输入 3

说明:这种方法也可以用正则表达式来替代,操作如下: 1,3s/<192>/193/gc 就可以,效果如下:

193.168.0.10
193.168.0.11
193.168.0.12

向前批量插入数据,假设有如下数据:

<stdio.h>
<stdlib.h>
<string.h>
<malloc.h>
void main()
{
    return 0;
}
在四行头部文件前面都插入#include ,操作如下:
  • 把光标移动到顶部第一行的 <
  • linux 下按 ctrl+q,进入块编辑模式
  • 按下 j
  • 移动到 <malloc.h> 的 <
  • 按下 I,会自动跳到 <stdio.h> 的 < 上,而且是在插入的模式
  • 输入 #include
  • 按下 esc

说明:这种方法也可以用正则表达式来替代,操作如下: 1,4s/^/#include /gc 就可以了,完成的效果如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
void main()
{
    return 0;
}

向后批量插入数据,假设有如下数据:

192.168.0.10
192.168.0.11
192.168.0.12
在各个ip地址的后面加入 http://localhost/,操作如下:
  • 把光标移动到第一行 100
  • linux 下按 ctrl+q,进入块编辑模式
  • 按下 j,移动到最后一行的 2 上面
  • 按下 A,会自动跳到第一行 100 上, 而且是在插入的模式
  • 输入 http://localhost/
  • 按下 esc

说明:这种方法也可以用正则表达式来替代,操作如下: 1,3s/$/ http:\/\/localhost\//gc 就可以了,完成的效果如下:

192.168.0.10 http://localhost/
192.168.0.11 http://localhost/
192.168.0.12 http://localhost/

【上一篇】linux的根目录详解及目录的常用操作

【下一篇】vim的高级选择方式