vim(gvim)正则表达式查找替换-生成连续数字或行号

在excel中,提供了一个功能能够根据第一个数字下拉生成一串连续的数字,那么在vim中能不能生成呢?答案是确定的,并且方法不仅一种,并且灵活性更高。

第一种.用Vim的查找替换,说白了,好比说要生成1到100,那么就讲100个1顺序替换,每次替换自加就能够了。方法以下: php

1)在Vim中键入1. vim

2)在1所在行,yy,100p。 spa

3)进入命令行模式,输入以下命令: 插件


let i=1|g/1/s//\=i/|let i=i+1


OK啦,效果以下。
生成连续数字,方法1

其实命令比较简单,简单解释一下: 命令行


  1. 1/  表明查找1
  2. s/  表明替换后的新字符就在这个位置
  3. /   就表明后面跟的是新的字符内容
  4. \=i \=是把后面的字符串当成表达式来对待,在这里就是i的值
  5. |   (逻辑或的符号)用以链接三个语句


其实到这里你们就能够自由发散啦,好比若是我想让字母横排怎么办呢?
3d

:%s/\n/ /gc
再好比我只要偶数/奇数怎么办呢,相信你们都比我聪明,因此我就不罗嗦啦~
再由这个例子延伸一下,我要在每行前生成一个行号,怎么搞?按照刚才的思惟,确定仍是要用到递增的理念,而后在啰嗦一句行首匹配符是^~~
呵呵,命令以下:
let i=1|g/^/s//\=i/|let i=i+1

效果图以下: excel

插入行号

好啦,那么接着介绍咱们的第二种方法--列模式+visincr插件。 code

1)在Vim中键入1。
2)在1所在行,yy,100p。
3)按下CTRL+v,而后按下G,从而讲全部的行都选中。
4)进入命令行,按下:I blog


效果图以下:
生成连续数字,列模式+visincr插件 ip


是否是也是很棒?
呵呵,visincr就是专门作这种递增事情的插件的,他的生成方式要比咱们查找替换更灵活写,好比他能够控制是左对齐仍是右对齐,关于这个插件本博之后专门写一篇文章讲解~因此此次就再也不赘述啦。
OK,怎么样,Vim够强大吧,赶忙去试试吧~~

转自:http://www.vimer.cn

相关文章
相关标签/搜索