三种模式
vi进去命令模式
命令模式通过aio转insert模式,esc退出
命令模式通过冒号(:)进去编辑模式,回车结束运行
insert模式
指令 | 说明 |
---|
i(infront) | 在光标前面插入 |
I | 在光标所在行首插入 |
a(ass) | 在光标后面插入 |
A | 在光标所在行尾插入 |
o | 在光标所在行下面插入一行新的 |
O | 在光标所在行的上面插入一行新的 |
定位命令
指令 | 说明 |
---|
:set nu(mber) | 设置行号 |
:set nonu | 取消行号 |
:n | 跳转到第n行 |
gg | 跳转到第一行 |
G | 跳转到最后一行 |
nG | 跳转到第n行 |
$ | 跳转到光标所在行的行尾 |
0 | 跳转到光标所在行的行首 |
删除命令
指令 | 说明 |
---|
u | 撤回上一步操作 |
dd | 删除光标所在行,ndd删除光标起的n行 |
x | 删除光标所在的字符 |
nx | 删除从光标起的n个字符 |
dG | 删除光标所在行到文件末尾内容 |
D | 删除光标所在位置在行尾的内容 |
:n1,n2d | 删除n1到n2行的内容 |
复制和剪切命令
指令 | 说明 |
---|
yy | 复制光标所在行,nyy复制光标起n行 |
dd | 剪切光标所在行,ndd剪切光标起n行 |
p | 在光标所在行下面粘贴 |
P | 在光标所在行上面粘贴 |
替换和取消命令
指令 | 说明 |
---|
r | 替换光标所在字符 |
R | 替换光标起的字符,按esc结束 |
u | 取消上一步操作 |
搜索和搜索替换命令
指令 | 说明 |
---|
/string | 搜索指定字符串,忽略大小写:set ic |
n(next) | 跳到下一个字符串出现的位置 |
:%s/old/new/g | 全文替换 |
:n1,n2s/old/new/g | 指定行范围替换 |
保存和退出命令
指令 | 说明 |
---|
:w | 保存修改 |
:wq | 保存修改并退出 |
ZZ | 保存修改并退出 |
:w filename | 修改另存为新文件 |
:q! | 不保存修改退出 |
:wq! | 强制保存修改并退出(仅root和文件所有者可以使用) |
vim使用技巧
指令 | 说明 | 举例 |
---|
:r !命令 | 导入命令执行结果到当前光标所在位置 | :r !date |
:n1,n2s/^/#/g | 注释多行 | |
:n1,n2s/^#//g | 去掉多行的注释 | |