打开文件
vi [file name];
前滚半屏
Ctrl + u
后滚半屏
Ctrl + d
前滚一屏
Ctrl + b
后滚一屏
Ctrl + f
第n行滚至屏幕顶
nz
光标右移一格
??
l
Space
光标左移一格
??
h
Backspace
光标上移
??
k
Ctrl + p
光标下移
??
j
Ctrl + n
光标右移一个字至字首
w
W
光标左移一个字至字首
b
B
光标右移一个字至字尾
e
E
光标移至句尾
)
光标移至句首
(
光标移至段落开头
}
光标移至段落结尾
{
光标下移n行
n+
光标上移n行
n-
光标移至第n行首
nG
光标移至第n行尾
n$
光标移至屏幕顶部
H
光标移至屏幕中间
M
光标移至屏幕最后一行
L
光标移至当前行首
0
删除光标处开始及其后的n-1个字
ndw
ndW
删至行首
do
删至行尾
d$:
删除当前行及其后n-1行
ndd
删除光标后一个字符
x
删除光标前一个字符
X
删除输入方式下所输入的文本
Ctrl + u
删除一行
dd
从光标处向后搜索pattern
/pattern
从光标处向前搜索pattern
?pattern
在同一方向上重复搜索
n
在反方向上重复搜索
N
将当前行中所有p1均用p2替代
:s/p1/p2/g
将第n1至n2行中所有p1均用p2替代
:n1,n2s/p1/p2/g
将文件中所有p1均用p2替换
:g/p1/s//p2/g
将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 co n3
将n1行到n2行之间的内容移至到第n3行下
:n1,n2 m n3
将n1行到n2行之间的内容删除
:n1,n2 d
保存当前文件
:w
保存当前文件并退出
:x
退出vi
:q
不保存文件并退出vi
:q!
在当前字符前插入文本
i
在行首插入文本
I
在当前字符后添加文本
a
在行末添加文本
A
在当前行后面插入一空行
o
在当前行前面插入一空行
O
以改写方式输入文本
R