假设你要写一段往表里插入数据的代码,大致如下
string sql = "insert table(a,b,c,d,e,f,g) values(@a,@b,@c,@d,@e,@f,@g)";
string[] parms = new string[] { "@a", "@b", "@c", "@d", "@e", "@f", "@g" };
_db.SqlExecuteNonQuery(sql, parms, args);
其中黄色背景的部分有规律重复,只是格式不同,重复是罪恶,我们可以在vs.net里手工一个字符一个字符的打出来,当然也可以在VIM里实现快速操作,流程如下
1、在VIM按i进入插入模式,输入原始字符串
a,b,c,d,e,f,g
2、按esc回到正常模式,按0回到行首
3、按qa开始录制一个宏a
4、按i进入插入模式,输入@,按esc进入正常模式,按3次w键让光标跳转到b(b闪烁)
5、按q结束宏录制,这时候已经录制好了一个宏a
6、保持光标不动,输入6@a,连续6次执行宏a,得到如下结果
@a,@b,@c,@d,@e,@f,@g
把上面的文字复制到values()的括号里就行了,相应的生成string[]{}大括号里的文字也可以用宏来快速实现了,步骤不介绍了,输入a,b,c,d,e,f,g,并让光标保持在行首,一次键入如下字符序列
qb i "@ w w i " esc w q 6@b
最终得到如下
"@a","@b","@c","@d","@e","@f","@g
在最后补个"后复制到string[]{}的大括号里就行了。
有人说,这么麻烦,我还不如手工一个字符一个字符敲呢,恩,也是。不过这种东西学会一次,可以用一辈子,它是可重用的,而且熟练使用之后肯定比一个字符一个字符的敲要快。