开始之前人类大脑对文字的处理是平面式的,所以我们浏览文章、查找资料或者重构代码,要么是横向读,要么是纵向读,要么使用搜索功能,将文字作为一个平面整体。而在编辑文字、编写代码的时候则不是横向就是纵向。常规文本编辑器都是横向编辑,而纵向编辑也常被作为特色功能。比如 Vim、EditPlus、UltraEdit 这些编辑器都有纵向编辑模式,或者称为列模式。像日常文字处理工具 MicroSoft Word、OpenOffice Writer 也可以通过按下功能键 ALT,实现纵向选中文本,然后对文本进行操作。纵向编辑不仅是编辑器的一种功能,更是人们思考问题的一种方式,项目符号、段落编号,都是纵向编辑的体现。 Vim 的纵向编辑模式启动方便,使用灵活,还可以配合上插件实现很实用的高级功能。 启动方法在 Vim 命令模式下,移动游标定位于某一个位置,键入 示例 1:纵向编辑在批量修改代码的应用演示将数列: 10.1.5.214 10.1.5.212 10.1.5.210 编辑成序列: ping -c 4 10.5.5.214 >> result0 ping -c 4 10.5.5.212 >> result0 ping -c 4 10.5.5.210 >> result0 这是一个将 IP 数列修改成可执行的 ping 命令序列的过程。 第一步:修改将 IP 数列中第二段所有数字“1” 修改为“5”: 将游标定位第一个行 IP 地址第二段的“1”
结果如下: 10.5.5.214 10.5.5.212 10.5.5.210 第二步:前添加在所有行之前添加“ping – c 4 ”: 将游标定位到第一行第一列
结果如下: ping -c 4 10.5.5.214 ping -c 4 10.5.5.212 ping -c 4 10.5.5.210 第三步:后添加在所有行之后添加“>> result0”: 将游标定位到第一行最后一列
结果如下: ping -c 4 10.5.5.214 >> result0 ping -c 4 10.5.5.212 >> result0 ping -c 4 10.5.5.210 >> result0 以上三个步骤有一个共同特点,就是都纵向为编辑方向。以上由三行代码为例的方法同样也可以适用于更多的行。 VisIncr 安装与操作以上例子中所演示的对代码的纵向编辑,通过一般的代码重构功能或者结合正则表达式的查找替换也可以实现。然而 Vim 的纵向编辑模式还可以通过插件 VisIncr 的扩展,实现更丰富的功能,如纵向的生成数列。 从 Vim 的官方网站上搜索找到 VisIncr 插件的安装文件,并下载到 Vim 工作目录。执行以下命令即可安装该插件: vim visincr.vba.gz :so % :q 操作方法以示例 1 的代码为例: 使用
结果如下: ping -c 4 10.5.5.214 >> result0 ping -c 4 10.5.5.212 >> result1 ping -c 4 10.5.5.210 >> result2 示例 2:VisIncr 在生成测试数据的应用演示在应用程序开发过程中经常要生成一个简单有规律的测试数据。比如对一张表: testTable (”ipaddr” ,”filename”, ”owner”) 生成如下 SQL 语句: insert into test values("10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.212”,”result1”,”testb”); insert into test values(”10.5.5.210”,”result2”,”testc”); 这个纵向有规律的语句序列,可以借助 VinIncr 应用纵向编辑功能来构造。 第一步:准备打开一个新的 Vim 编辑页面,在命令模式下先输入一个“3”,然后键入“i”进入编辑模式。数字“3”代表本次输入的内容会重复输 3 遍。 在 VIM 中先输入第一行: insert into test values(”10.5.5.214”,”result0”,”testa”); 以回车结束行输入并新开一行,按 ESC 键退出编辑模式。 如果如下: insert into test values(”10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.214”,”result0”,”testa”); 第二步:构造递减数列对于 ipaddr 列,使用
结果如下: insert into test values(”10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.212”,”result0”,”testa”); insert into test values(”10.5.5.210”,”result0”,”testa”); 第三步:构造递增数列对于 filename 列,使用上一节介绍的方式,结果如下: insert into test values(”10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.212”,”result1”,”testa”); insert into test values(”10.5.5.210”,”result2”,”testa”); 第四步:构造字母递增数列对于 owner 列,使用
结果如下: insert into test values(”10.5.5.214”,”result0”,”testa”); insert into test values(”10.5.5.212”,”result1”,”testb”); insert into test values(”10.5.5.210”,”result2”,”testc”); 以上步骤即演示了借助 Vim 插件 VisIncr 对代码的纵向编辑,生成在纵向有逻辑规律的数列。 总结Vim 不仅是一个编辑工具还是一套思考方法,Vim 有很多引导思维方向的技巧,让 Vim 在这个各种编辑器层出不穷的时候历久弥新。本文从纵向编辑为切入点,结合 VisIncr 演示了开发、测试过程中可以使用的实例。 |
|