由 command mode 进入 insert mode 有四个常用的指令: i , a , o , 跟 O 。
i 是由游标的前面开始做 insert text 的动作。 a 是由游标的后面开始做 insert
text 的动作。 o 则是在游标下方开启新的一行来编辑,同样的,O 是由游标的上
方来开启新的一行来编辑。结束一个编辑动作可以用 Escap 来回到 command mode ,
此时可以做移动,删除,复制,搜寻等编辑指令。
vi 的移动一般用上下左右键便可达到,然而它也有其自己的指令键:
h : 向左移一个字元
j : 向上移一个字元
k : 向下移一个字元
l : 向右移一个字元
0 : 移至行首
$ : 移至行尾
vi 的删除指令有几种,如下:
x : 删除游标上的字元。
X : 删除游标的前一个字元。
dd: 删除该行。
dw: 删除游标所在之单字。
d0: 删除自行首至游标所在之所有字元。
d$: 删除自游标至行尾之所有字元。
vi 可以使用 yy 来将游标所在行存起来,然后将游标移至所要贴的行之处按
p , 则刚才 mark 的行会被复制出现在游标之下。( 如果使用 P 则会出现在
游标之上。)
在指令模式中,你可以在任何前面提到的指令前面加上大于零的数字 n,则你
所做的动做将会被重复 n次,如要删除十行可以按 10 dd , 要复制十行可以用
10 yy , 要将同样的文字重复写十次可以用 10 i ,然后离开 insert mode 之
后就会将剩下的九次重复写出来。
在 command mode 要存入一个已写好的档案可以使用'ZZ' , 则它将会把你编好
的档案写入后离开 vi .
在 vi 中搜寻一个字串可以使用 / , 在斜线后跟上你所要搜寻的字串,它就会
找到你所要的字串,如要在搜寻相同字串按 n 即可。使用? 来搜寻可以使vi往
回找出你所需要的字串。
ex 的指令
在 vi 中亦可使用 ex 的指令,只要在 command mode 时以冒号 : 做开头,
即可使用 ex 的指令。常用 ex 指令如下:
:l1 , l2 d 删除自行l1至行l2的文字。
:l1 , l2 s /patern1/patern2/[g] 将自行l1至行l2的文字中,有 patern1 的字
串改为 patern2 的字串,如无 g 则仅更换每一行所 match 的第一
个字串。如有 g 则将每一个字串均做更换。
:l1 , l2 co l3 将自行l1至行l2的文字 copy 到行 l3 。
:l1 , l2 mo l3 将自行l1至行l2的文字 move 到行 l3 。
:w [file] 将编辑的文字存入档案中。
:n [file] 引入下一个档案。
:q 离开
其余请参阅 gopher 上的 vihelp , 或执行 vilearn , 学习 vi 的用法。