vi 简介


vi 是visual edit 的缩写
进入vi
vi test
离开vi
:q! 离开vi,并放弃刚在缓冲区内编辑的内容 。
:wq 将缓冲区内的资料写入磁盘中,并离开vi 。
:ZZ 同wq
:x 同wq
:w 将缓冲区内的资料写入磁盘中,但并不离开vi 。
:q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容,此指令可与: w 配合使用 。
Vi 的操作模式
Vi 提供两种操作模式:
输入模式(insert mode)
指令模式(command mode)
当使用者进入vi后,既处于指令模式下,此刻键入任何字元皆被视为指令 。输入模式:a(append) 游标之后加入资料 。
A 该行之末加入资料
i (insert) 游标之前加入资料
I 该行之首加入资料
o (open) 新增一行与该行之下供输入资料
O 新增一行与该行之上供输入资料指令模式:B移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符 。
b由游标所在位置之前一个字串的第一个字元
cc 删除整行,修改整行的内容 。
D以行为单位,删除游标在内后面的所有字符 。
db 删除该行光标前字符
dd 删除该行
de 删除自光标开始后面的字符
d加字符 删除光标所在位置至字符之间的单
E移至该行最后字符,若光标在该行最后字符则光标移至下一行最后字符
e由游标所在位置至该字串的最后一个字元
G 移至该档案的最后一行
h 向前移一个字元
j 向下移一个字元
k 向上移一个字元
0 移至该行之首
M 移至视窗的中间那行
L 移至视窗的最后一行
l 向后移一个字符
0 由游标所在位置该行的第一个字元
nG 移至该档案的第n行
n自游标所在位置向后移n行至该行的第一字符
n- 自游标所在位置向前移n行至该行的第一字符
R 进入取代状态,直到《ESC》为止
s 删除游标所在字元,并进入取代模式直到《ESC》
S 删除游标所在之该行资料,并进入输入模式直到《ESC》
w 由游标所在位置之下一个字串的第一个字元
x 删除游标所在该字元 。
X 删除游标所在之前一字元 。
r 用接于此指令之后的字元取代(replace)游标所在字元
yy yank整行,使游标所在该行复制到记忆体缓冲区
显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
$ 由游标所在位置至该行的最后一个字元 。
) 由游标所在位置至下一个句子的第一个字元 。
( 由游标所在位置至该句子的第一个字元 。
{ 由游标所在位置至该段落的最后一个字元 。
} 由游标所在位置至该段落的第一个字元yank和delete可将指定的资料复制到记忆体缓冲区,而藉有put指令可将缓冲区内的资料复制到荧幕上
例如:搬移一行 :在该行执行dd
游标移至目的地
执行p
复制一行 :在该行执行yy
游标移至目的地
执行p
视窗移动:
视窗往下卷一页
视窗往上卷一页
视窗往下卷半页
视窗往上卷半页
视窗往下卷一行
视窗往上卷一行
删除、复制及修改指令介绍:
d(delete)、c(change)和y(yank)这一类的指令在vi 中的指令格式为:
operation scope=command
(运算子)(范围)
运算子:
d 删除指令 。删除资料,但会将删除资料复制到记忆体缓冲区 。
y 将资料(字组、行列、句子或段落)复制到缓冲区 。
p 放置(put)指令,与d和y配合使用 。可将最后delete或yank的资料放置于
游标所在位置之行列下 。
c 修改(change)指令,类似delete于insert的组合 。删除一个字组、句子等
资料,并插入新键入的资料 。指令重复:在指令模式中,可在指令前加入一数字n,则此指令动作会重复执行n次 。

推荐阅读