Vim + Excel Coding好帮手!!!

QAQ

很多时候在编码的时候会发现根据接口文档来建立javaBean,当字段过于多的时候要反复在文档和IDE中CV,感觉很不方便,明明字段名称都已经被定义了,还要自己挨个去定义,能不能给我一次性定义好?因为接口文档中的字段肯定是成列的,那么只要在字段这一列前面加上 private String ,字段后面加上 ;就可以直接复制到IDE中。这就要求我们可以对某一列的前面进行操作,这时候就可以用到 VIM了。

Vim 块编辑实现JavaBean字段的快速编写

先新建一个文件 vim text.java,然后按i进入编辑模式将接口文档中的字段列复制进来。退出编辑模式,将光标位于你想要编辑的块起点,再进入块编辑模式,linux下快捷键Ctrl + v,WSL下的快捷键 Ctrl + Alt + v,移动光标选择你想要编辑的块(这里就是光标选中第一行行首和最后一行行首)然后按 I(大写的i),就进入了编辑模式,此时只需要输入想要在这列前面添加的数据即可,当输入完毕以后,按Esc可以发现所有的列的前面都添加了同样的数据。最后只需要在每一行的行尾输入; 即可。这时候我们直接进入命令模式,先按 Esc,然后按 Shift + :就进去了命令模式,在此模式下输入 %s/$/; 然后回车即可。

1.gif

QAQ

今天在调用外部接口的时候,对方返回了很多Status值,我们的业务需要将status对应的中文直接返回给前端,好家伙,结果一看对方给的PDF文档中Enum多达200组,顿时就蚌埠住了,这要自己手敲枚举类即使CV都要半天,太浪费时间了。因为文档中的值是以两列表格的形式(一 一对应)给出来的,所以其实可以直接将两列数据进行拼接就能得到相应的枚举值定义代码了,这种对多列进行操作首先第一时间就想到了Excel,Excel做这种工作也是很简单。

利用Excel直接生成枚举值的定义

假如我们需要定义的枚举值的形式为:

Monday("Monday","星期一"),
Tuesday("Tuesday","星期二"),
/**
* other
*/
Sunday("Sunday","星期天");

前面的每组值之间以,分隔,最后一组以;结尾。

PDF中的对应数据如下所示:

CodeMessage
Monday星期一
Tuesday星期二
......
Sunday星期天

这时候我们只需要将PDF中的两列数据导入Excel中的两列,这里以A,B列为例。那么只需要让C列的值等于=$A1&"("&""""&$A1&""""&","&""""&$B1&""""&")"&"," 即可,拖动下表就可以生成每一个枚举值的定义。最后只需要将C列的数据复制到我们定义好的枚举类中,并将最后一组的枚举值改为;结尾即可。

注:这里可能会出现PDF复制出来的数据不是成列的,只是一个文本。这时候如果不用工具将PDF转成Excel的话,可以将PDF中的列复制以后,直接打开Vim,并粘贴在里面,这时候就是成列的了。但是其实只有一列(相当于PDF中的两列合并成了一列,行之间的两个值用空格分隔开来),这时候可以把这一列复制到Excel的A列,然后利用Excel的分列功能,选择空格作为分隔符,即可将后面的Message分出单独的一列到B列。


标题:Vim + Excel Coding好帮手!!!
作者:amore
地址:HTTPS://iamwaiting.cn/articles/2021/08/23/1629713577853.html
彧言:  正在加载今日诗词....
    评论
    0 评论
avatar

取消