最近做的项目中要用到了大量的坐标点,美工提供给了大概有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)的坐标点。
图1:进入Gvim,正常模式下,然后按a键进行插入模式,输入“1,1”(引号内的,不包括引号),输入完后,按Esc退出插入进入正常模式。
图2:将光标移动到第一个1上面,按“qa”进入宏记录,这时候的操作都将会被记录下来。后面进行如下操作:
yy--复制该行
p--粘贴该行
图三:图2的操作后结果如上图。这时候Ctrl+a对第一个1进行递增操作,按一次,1递增为2,然后Shift+4将光标移动到该行最后一个字符,也就是上图第二行第二个1,再按一次Ctrl+a,第二个1变成了2。
图四:Shift+6将光标移动到第二行的第一个字符,然后q键退出宏记录。
然后 在正常模式下输入 98@a
会出现如下结果:
就像你看到的,我先用宏记录功能生成了上面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 ,看下奇迹把。
(注:上面所述操作需要读者对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里面的行注释只要在前面输入"就行了)