vi编辑器的四种模式状态:
1)命令模式 command
2)插入模式 insert
3)底行模式(末行模式):
4)视图模式 visual
vi模式切换:
输入模式————> ESC ————>命令模式————> shift+: ————>末行模式
输入模式<———— i <————— 命令模式 <———— ESC <——————末行模式
命令模式————> v ————> 视图模式
命令模式<——— ESC <——— 视图模式
输入模式,末行模式,视图模式三者相互切换,中间必须都要按ESC先回到命令模式,再切换到其他模式。
1)vi输入模式
a 在当前字符的后面输入
i 在当前字符的前面输入
s 删除当前字符并输入
o 当前字符所在行下方输入
A 在当前行后面输入
S 删除当前行并输入
I 当前行前面输入
O 当前行上一行输入
2)vi命令模式
h 左
j 下
k 上
l 右 (小写L)
x 删除当前字符,3x删除三个字符
r 单字符替换
dd 删除一行,剪切一行
dw 删除一个单词
d^ 从当前字符删除到行首
d$ 从当前字符删除到行末
G 跳到最后一行
1G 跳到第一行,nG跳到第n行
dG 从当前行删除到最后一行
d1G 从当前行删除到第一行
yy 复制当前行
3yy 复制三行,nyy复制n行(包括当前行,往下数)
p 粘贴到下一行
2p 重复粘贴两次,np重复粘贴n次
P 粘贴到上一行
u 撤销
ctrl+r 恢复
/word 查找word,用n键查找下一个,N查找上一个
v 按v键再按上下左右进行视图选中,进行快速缩进,v是按字符选中
V 按行来进行视图选中
3)vi末行模式
:q 不保存退出
:q! 强制不保存退出
:wq 保存退出
:wq! 强制保存并退出
:x 保存退出,
#与:wq的区别是:如果文件没有修改,按:x退出,不会修改文件的时间属性;
#如果按:wq退出,则即使文件内容没有改动,但是文件的时间属性会发生改变。
:w 保存不退出。防止突然断电,数据丢失
:w file2 将文件保存到另一个文件file2中
:%s/old/new/g 把文章内所有old全部替换成new,%是第一行到最后的意思,g代表global全局
:1,10s/old/new/g 将第1行到第10行的old替换成new
:s/old/new/g 替换当前行中的所有old为new
:set nu 显示行号
:set nonu 不显示行号