打开文件 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
光标移至句尾 $
光标移至句首 0
光标移至段落开头 }
光标移至段落结尾 {
光标下移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
撤销上一步操作 u
显示当前行号 nu
显示所有行号 :set nu
取消显示行号 :set nonu
复制当前行 yy
粘贴 p
删除当前行 dd
复制多行 nyy 复制n行