vi 有三种工作模式,命令模式、插入模式和编辑模式。
键入命令:vi + 文件名 就可启动vi,缺省是命令模式。
键入i进入插入模式,插入模式按esc回到命令模式
命令模式
插入命令
a 在光标后插入文本
A 在行末插入文本
i 在光标前插入文本
I 在行首插入文本
o 在光标下插入文本
O 在光标上插入文本
移动光标
h 向左移动
j 向下移动
k 向上移动
l 向右移动
$ 移至行首
0 移至行尾
H 跳到上端
M 跳到中端
L 跳到下端
跳到具体行
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
删除命令
x 删除光标字符
nx 删除光标开始以后的n个字符
dd 删除光标所在行
ndd 删除光标开始以后的n行
D 删除光标开始到行尾的内容
dG 删除光标开始到末尾的内容
:n1,n2d 删除n1行到n2行的内容
复制、剪切、粘贴
yy 复制当前行
nyy 复制光标及以下的n行
dd 剪切当前行
ndd 剪切光标及以下的n行
p 粘贴光标所在行下面
P 粘贴到光标所在行的上面
替换、撤销操作
r 替换光标所在字符
R 从光标所在字符开始替换,直到按esc结束
u 撤销上一步操作
搜索、替换
/关键字 搜索和关键字有关的行,按n查看下一个,按N查看上一个
:set ic 搜索时忽略大小写
:set noic 关闭忽略大小写
:%s/old/new/g 全文替换
:n1,n2s/old/new/g 只替换n1到n2
注:最后g可以换成c,c指的是替换时会询问是否替换
保存、退出
:wq 退出保存键入(快捷键ZZ)
:q 退出不保存键入
:w 保存不退出
:w 文件名 另存为
注:如果权限不足在后面加!,但仅限于root和所有者有用