新增 (append)
a 从游标所在位置后面开始新增资料,游标后的资料随新增资料向后移动。
A 从游标所在列最后面的地方开始新增资料。
插入 (insert)
i 从游标所在位置前面开始插入资料,游标后的资料随新增资料向后移动。
I 从游标所在列的第一个非空白字元前面开始插入资料。
打开 (open)
o 在游标所在列下新增一列并进入输入模式。
O 在游标所在列上方新增一列并进入输入模式。
x 删除游标所在字元。
dd 删除游标所在的行。
r 修改游标所在字元,r 后接著要修正的字元。
R 进入取代状态,新增资料会覆盖原先资料,直到按 [ESC] 回到指令模式下为止。
s 删除游标所在字元,并进入输入模式。
S 删除游标所在的列,并进入输入模式。
:d 删除光标所在行
:dn 从光标所在行向下删除n行
:m,nd 删除m到n行所有内容
dH 删除光标所在行到首行的所有内容
dL 删除光标所在行到最后行的所有内容
u 取消上次操作
U 恢复游标所在列的所有改变
:1,$ s/str1/str2/g 用str2替换文中所有的str1
:%s/str1/str2/g 用str2替换文中所有的str1
定位:
h 向左移动
j 向下移动
k 向上移动
l 向右移动
w/W 将光标右移至下一个字的字首
b B / (e / E) 将光标右移至字首(尾)
0 移动到游标所在行的最前面
$ 移动到游标所在行的最后面
n$ 向下移动n-1行并到行尾
( 将光标移至上一个句子的开头
) 该命令将光标移至下一个句子的开头
{ 该命令将光标向前移至上一个段的开头
} 该命令将光标向后移至下一个段的开头
Ctrl+d 向下半页
Ctrl+f 向下一页
Ctrl+u 向上半页
Ctrl+b 向上一页
H 移动到视窗的第一行行首
M 移动到视窗的中间行行首(或屏幕显示文件的中间行)
L 移动到视窗的最后行
Ctrl+g 显示当前行信息
/字符串 从前往后查找指定字符串
?字符串 从后往前查找指定字符串
n 继续查找
N 反向继续查找
:n 将光标移动第n行
nG 将光标移动第n行
nj 将光标下移n行
nk 将光标上移n行
:0 到文件首
其它:
:set number 显示行号
:w 保存文件,但不退出
:wq 保存且退出
:w! 强制保存
:w /tmp/filename 另存为临时文件
:q 退出vi
:q! 不存盘退出vi