插入命令
i
在光标前插入
I
在光标当前行开始插入
a
在光标后插入
A
在光标当前行末尾插入
o
在光标当前行的下一行插入新行
O
在光标当前行的上一行插入新行
定位命令
:set nu
显示行号
:set nonu
取消行号
gg
到文本的第一行
G
到文本的最后一行
:n
到文本的第n行
$:移动到这一行的最后一个字符处
替换和取消命令
u
undo,取消上一步操作
Ctrl + r
redo,返回到undo之前
r
替换光标所在处的字符
R
从光标所在处开始替换,按Esc键结束
删除、复制、粘贴命令
x
删除光标所在处字符
nx
删除光标所在处后的n个字符
dd
删除光标所在行。ndd删除n行
dG
删除光标所在行到末尾行的所以内容
D
删除光标所在处到行尾的内容
:5,7d
删除指定范围的行
yy 复制光标所在行(常用)
nyy 复制光标所在行向下n行(常用)
y1G 复制光标所在行到第一行的数据
yG 复制光标所在行到最后一行的数据
p,P p将复制的数据粘贴在光标的下一行,P为复制的数据粘贴在光标的上一行(常用)
J 将光标所在行与下一行数据合成一行
翻页:
ctrl+f: 屏幕向前翻动一页
ctrl+b: 屏幕向后翻动一页
ctrl+d: 屏幕向前翻动半页
ctrl+u: 屏幕向后翻动半页
vi中的shell转义命令
:!command 执行shell的command命令,如:!ls
:!! 执行前一个shell命令
:r!command 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容
:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令,如:w!grep all
:cd directory 将当前工作目录更改为directory所表示的目录
:sh 将启动一个子shell,使用^d(ctrl+d)返回vi
:so file 在shell程序file中读入和执行命令
常用快捷键
Shift+ zz
保存退出,与“:wq”作用相同
v
进入字符可视模式
V 或 Shift + v
进入行可视模式
Ctrl + v
进入块可视模式