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

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

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

1)在Vim中键入1.

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

3)进入命令行模式,输入如下命令:


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


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

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


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


其实到这里大家就可以自由发散啦,比如如果我想让字母横排怎么办呢?

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

效果图如下:

插入行号

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

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


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


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

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

转载于:https://my.oschina.net/i33/blog/84577

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值