linux下vi命令rk linux vi命令大全( 二 )


:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1 , n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中 , 其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处 。这里?能是个字母 , 也能是个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中 。
进入vi
vi test
离开vi
:q! 离开vi,并放弃刚在缓冲区内编辑的内容 。
:wq 将缓冲区内的资料写入磁盘中,并离开vi 。
:ZZ 同wq
同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整行,使游标所在该行复制到记忆体缓冲区
显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
$ 由游标所在位置至该行的最后一个字元 。
) 由游标所在位置至下一个句子的第一个字元 。
( 由游标所在位置至该句子的第一个字元 。
{ 由游标所在位置至该段落的最后一个字元 。

推荐阅读