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

相關文章
相關標籤/搜索