vi的3种模式:
命令模式,输入模式,末行模式
按ESC是退出模式
在命令模式下:
1G:跳转到文件的首行
G:条状到文件的末尾行
nG:跳转到文件的第n行
dd:删除光标所在行
ndd:从光标所在行开始向下删除n行
u:取消最近的一次操作,并恢复操作结果
U:取消对当前行进行的所有操作
ctrl+r:对使用u命令撤销的操作进行恢复
yy:复制当前行
yny,nyy:复制多行
p:黏贴
i:在当前光标后一个字符位置进入插入状态进入输入模式
shift+:是进入末行模式
q:退出
wq:保存退出
q!:不保存退出
w:保存已打开的文件的修改
w myfilename:另存为指定的文件名
查找字符串:
在命令模式下:
/word :从上向下找字符串“word”
?word :从下往上
n:定位下一个匹配的
N:定位上一个匹配的
替换:
末行模式:
s/old/new:第一个old替换为new
s/old/new/g:当前行所有old替换为new
#,#s/old/new/g:在行号“#,#”范围内替换所有old为new
%s/old/new/g:整个文件内所有的old替换为new
s/old/new/c:对每个替换动作提示用户进行确认
显示行号:set nu
取消显示行号:set nonu