Vim强大宏记录功能牛刀小试

最近做的项目中要用到了大量的坐标点,美工提供给了大概有50~60个坐标点,记录在一个txt文档里面。格式(A)为:

200,320

300,100

320,103

······

大概有50~60个左右的样子。

在编码中,我发现需要对这种格式的点进行统一变化。变化后的格式(B)为:

VectorA.push(new Point(200,320));

VectorA.push(new Point(300,100));

VectorA.push(new Point(320,103));

``````

其实50~60个还好,有人说复制粘贴就行了,想必大家都知道怎么做 但觉得还是麻烦,那100个,1000个呢?

我用的是Windows,所以是Gvim版本。这时候Gvim的宏记录的强大功能便体现了出来。

写这个博客的时候,我手头上没有大量的坐标点做为演示。不防我就用宏记录的功能快速建立100个如格式(A)的坐标点。

1C26B755DA444E3D7676271FAB9CCD6C_252_212.PNG

图1:进入Gvim,正常模式下,然后按a键进行插入模式,输入“1,1”(引号内的,不包括引号),输入完后,按Esc退出插入进入正常模式。

CC7B46F2F295E363B9ACAD3EF3EB5898_193_94.PNG

图2:将光标移动到第一个1上面,按“qa”进入宏记录,这时候的操作都将会被记录下来。后面进行如下操作:

yy--复制该行

p--粘贴该行

73FD8C6C70E26162944857F8424EC032_243_139.PNG

图三:图2的操作后结果如上图。这时候Ctrl+a对第一个1进行递增操作,按一次,1递增为2,然后Shift+4将光标移动到该行最后一个字符,也就是上图第二行第二个1,再按一次Ctrl+a,第二个1变成了2。

BCA8A4F39E991C493A1F817B85B7DD2B_142_79.PNG

图四:Shift+6将光标移动到第二行的第一个字符,然后q键退出宏记录。

然后 在正常模式下输入 98@a  

会出现如下结果:

05F6A9939B1ADABDE4071D2C3C45534A_119_765.PNG

就像你看到的,我先用宏记录功能生成了上面100个点。然后怎么把他们规范成格式(B)的样子呢?还是宏!

1.gg---将光标移动到第一行第一个字符1

2.qa---开始宏记录

3.i-----在第一行第一个字符1前面进入插入模式,直接开始输入VectorA.push(new Point(

4.Esc--退出插入模式

5.Shift+4--将光标移动到该行最后一个字符,也就是第二个1上面

6.a---进入插入模式,输入));

7.Esc--退出插入模式,j将光标下移一行至第二行,然后Shift+6将光标移动到第二行的第一个字符1

8.q----退出宏记录

9.在正常模式下,输入99@a ,看下奇迹把。

17DDABD5FF0E3AC712F7FE7160E8FAD8_293_766.PNG

(注:上面所述操作需要读者对Gvim有一定的了解,在学习中能够存活下来)

补充一下:有的朋友说我的Ctrl+a怎么在Gvim里面是全选呢,不是你所谓的递增操作。这是因为在Windows下,命令冲突了。怎么办呢?打开Gvim安装目录,找到vim73文件夹(这个跟版本有关)下的mswin.vim,打开,找到

" CTRL-A is Select all

" noremap <C-A> gggH<C-O>G

" inoremap <C-A> <C-O>gg<C-O>gH<C-O>G

" cnoremap <C-A> <C-C>gggH<C-O>G

" onoremap <C-A> <C-C>gggH<C-O>G

" snoremap <C-A> <C-C>gggH<C-O>G

" xnoremap <C-A> <C-C>ggV

就像这样,将映射全部注释掉就好了。(Vim里面的行注释只要在前面输入"就行了)

转载于:https://my.oschina.net/game007/blog/92795

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值