vi/vim高级命令集粹(5)

笔者目前正在为某外资公司从事大型机(IBM S/390)的软件开发,一切工作都在TSO环境中进行。为了对编写的程序进行测试,必须准备测试数据。有过大型机开发经验的人会知道,通过TSO,输入字符型数据还可以,如果要输入16进制数据,操作起来很麻烦。因为16进制数是纵向排列的,输入时既不方便,又很容易错位。怎么解决呢?我尝试了几种办法,实际证明,用VIM最方便。

例六、下列数据 1234567890ABCDEF ,将其变成 13579ACE 24680BDF 的形式,这样,数据就可以很方便的粘贴到TSO环境中了。

下面给出宏命令脚本change_d.vim

"----------------------------------------------------

"Macro Function : Convert Char Arrange Direction

"

" Sample : 40 50 60 ==> 4 5 6

" 0 0 0

" Date : 2001/12/01

" Author : Yan Shi

"----------------------------------------------------

:s/.*/&^M/

:1

:map = malx+$p-`al=

说明如下:

⑴ :s/.*/&^M/ 在数据行下方添加一空行。

⑵ :1 回到文件的首行的首字符。

⑶ :map = malx+$p-`al= 将一大串VIM命令映像给字符=

① ma 将首字符标记为a

② l 光标右移一个字符

③ x 删除光标处字符

④ + 移至下一行

⑤ $ 到行尾

⑥ p 将删除的字符粘贴

⑦ - 回至上一行

⑧ `a 返回到标记字符处

⑨ l 光标右移一个字符

⑩ = 递归调用,重复以上步骤,直到将该行所有的数据处理完。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwzxg.html