Vim列递增

一、VIM递增.

在1所在行,yy,100p。

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

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

要在每行前生成一个行号,怎么搞?按照刚才的思维,肯定还是要用到递增的理念,然后在啰嗦一句行首匹配符是^~~:let i=1|g/^/s//\=i/|let i=i+1

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

1/  代表查找1

s/  代表替换后的新字符就在这个位置

  就代表后面跟的是新的字符内容

\=i \=是把后面的字符串当成表达式来对待,在这里就是i的值

  (逻辑或的符号)用以连接三个语句

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

:%s/\n/ /gc

评价:第一种可以控制递增的数量,但是适于在空文本中使用

第二种指令:不便控制递增的数目,会递增至文本内容的最后

 

二、    :g/^/exe “s/^/”.line(‘.’).’ /

同样未能完成对递增数目的控制

 

三、    :r!seq 1 100

可以控制递增的数量,但是适于在空文本中使用,无法插入在有内容文本的前面

 

四、    :g/^文字 /s//\=printf("%s%d",submatch(0),line("."))/g

可以在文本的中间插入

文字 1还是文字

文字 2还是文字

文字 3还是文字

文字 4还是文字

文字 5还是文字

 

五、    利用宏

1、进入VIM,读取文件内容。

  2、在需要加入行号的首行开头输入起始行号(序号)并加入一个空格与后文隔开(空格用于后面的单词复制分隔,如要不希望加入空格也可以用其它方式来框选序号,偶就不一一列举了)。

  3、将光标置于行首(其实就是序号上),按下q(命令模式下),开始录制操作啦~;再按下t(偶将宏存到t中,大家也可以使用其它字符命名宏,注意是单个字符)

  4、在命令模式下按下yw,将行序号当作单词复制下来。

  5、按j到下一行,现在光标应该正对应到插入位置,按下P(最好是大写,表明在当前字符前粘贴),将上行序号粘贴到这个位置。

  6、按下^(无视空格用0[零,非欧]),光标回到行首(其实就是回到行序号上,还有其它方法可以实现),按下Ctrl-a,序号会加1(Ctrl-x表示减1,大家明白加2减2……如何处理了吧),然后再次按下^,保证光标在行序号开始位置。

  7、按下q结束录制。

8、在光标位于行序号首的情况下,想插入10个连续的行号就输入10@t,10代表执行次数,@表示执行宏,t是偶刚才给宏的命名,大家按自己命名使用。

 

经验证利用宏是比较方便实用的方式,个人选择宏这种方式。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值