Vimer的Coding效率谈

同仁们谈喜欢的Coding工具,有欣赏VS的,有欣赏Source Insight的,有欣赏Eclipse的,还有喜欢用UltraEdit的,就是没有人喜欢Vim!
在Linux环境下,正则是融入Linux血液中的,喜欢并熟练应用Vim编辑是水到渠成的事情。而在Windows环境下,学习正则没有不得不学习的理由,因此,许多的Coder学习Vim是一件痛苦的事情。虽然如此,鉴于Vim在某些情况下表现的高效率,还是建议Windows环境下的Coder们学习使用Vim为佳。


常用的应用场景之一:SQL语句


文员A拿来一张长长的Excel表格,要求将以下学员的成绩输入数据库,如下:
  学号 名称  成绩
  1    Lee   99
  2    Tommy 87
  ...
  333  John  78
文员已经填写好Excel表格了,怎么省事地将成绩单录入数据库呢?有两种方法,如下:
(1) 在Excel表格中增加列“Insert T_SCORE (no,name,score) Values("和");",然后以csv或txt的格式存储(以tab为分隔符),然后执行导出的SQL语句
(2) 将Excel表格导出为txt格式,然后替换
    %s/^\([0-9]\+\)\s\+\(\w\+\)\s\+\([0-9]\+\)/Insert\ T_SCORE(no,name,score)\ values(\1,'\2',\3);/gc
    然后执行生成的SQL语句
或许有童鞋会说,好像是方便了一点儿,但是优点也不明显啊,那再看一个例子


常用的应用场景之二:生成代码

 

开发Android应用,如果要访问Web Service服务,那么,使用ksoap是一个不错的选择,假如服务器端生成了一个长长的class,有很多个fields,例如:

  private Long a;
  private Long b;
  ...
  private String n;
  ...
  private Date   t;
那么,在Android端,你可以KvmSerialize这个class,以达到ksoap2自动为你encode/decode这个class的目的,为此,你需要implement一些接口,如
  @Override
  public Object getProperty(int arg0) {
  // TODO Auto-generated method stub
  switch(arg0){
  case 0:
  return a;
  case 1:
  return b;
  ...
  case 31:
  return t;
  }
  return null;
}
Coding这个getProperty会让你写一大堆的代码。但是,如果你用Vim,那么可以这样做:
(1) 将服务器端的那个class的fields代码复制->粘贴到Vim编辑器,如前示例
    private Long a;
    private Long b;
    ...
    private String n;
    ...
    private Date   t;
(2) 替换
    %s/^\s*\w\+\s\+\(\w\+\)\s\+\(\w\+\);/case\ 0:\r\treturn\ \2;/gc
    将会生成下面的代码
    case 0:
 retuen a;
    case 0:
      return b;
    ...
(3) 然后,复制->粘贴生成的代码到Eclipse,改变case之后的数字就可以了


 实现getPropertyInfo接口时用这个方法更方便
  @Override
  public void getPropertyInfo(int index, Hashtable arg1, PropertyInfo info) {
  // TODO Auto-generated method stub
 switch(index)
        {
        case 0:
         info.type = PropertyInfo.LONG_CLASS;
            info.name = "a";
            break;
        case 1:
         info.type = PropertyInfo.LONG_CLASS;
            info.name = "b";
            break;
...
        default:
         break;
        }
  }
  生成以上代码的Vim的替换命令如下:
   %s/^\s*\w\+\s\+\(\w\+\)\s\+\(\w\+\);/case\ 0:\r\tinfo.type\ =\ PropertyInfo.\1_CLASS\2;\r\tinfo.name\ =\ "\2";/gc

 

试试看,你的手指是不是要轻松了许多呢?


Vim可以做许多的事,其实VS等也是非常优秀的编辑工具,取长补短,使用时综合各种工具的长处才是王道




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值