linux中vi/vim编辑命令详解
1 vi的插入模式
按键 | 功能 |
---|---|
a | 光标位置右边插入文字 |
i | 光标位置当前处插入文字 |
o(字母) | 光标位置下方开启新行 |
O(字母) | 光标位置上方开启新行 |
I | 光标所在行首插入文字 |
A | 光标所在行尾插入文字 |
2 vi的退出
按键 | 功能 |
---|---|
ZZ(shift+z+z) | 保存退出 |
:wq | 保存退出 |
:x(小写) | 保存退出 |
:w filename | 保存到指定文件 |
:q | 退出,如果文件修改但没有保存,会提示无法退出 |
:q! | 退出,不保存 |
:!命令 | 暂时离开vi,执行命令 |
3 vi的删除和修改功能
按键 | 功能 |
---|---|
[n]x | 删除光标后 n 个字符 |
[n]X | 删除光标前 n 个字符 |
D | 删除光标所在开始到此行尾的字符 |
[n]dd | 删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除) |
[n]yy | 复制从当前行开始的 n 行 |
p | 把粘贴板上的内容插入到当前行 |
dG | 删除光标所在开始到文件尾的所有字符 |
J | 合并两行 |
. | 执行上一次操作 |
u | 撤销前一个命令 |
4 vi的行定位功能
按键 | 功能 |
---|---|
Ctrl + f | 向前滚动一个屏幕 |
Ctrl + b | 向后滚动一个屏幕 |
gg | 到文件第一行行首 |
G(大写) | 到文件最后一行行首,G必须为大写 |
:$ | 到文件最后一行行首 |
mG或mgg | 到指定行,m为目标行数 |
/内容 | 查找指定内容 |
5 vi的文本查找功能
按键 | 功能 |
---|---|
/字符串 | 查找指定字符串 |
n | 寻找下一个 |
N | 回到前一个 |
? | 寻找上一个 |
/^字符串 | 查找以字符串开始的行 |
/字符串$ | 查找以字符串结尾的行 |
/a.b | 查找字符串a任意字符b |
6 vi的替换功能
按键 | 功能 |
---|---|
r | 替换当前光标字符 |
:r 文件名 | 在光标当前位置载入另一个文件 |
:s/p1/p2/g | 将当前行中所有p1均用p2替代 |
:g/p1/s//p2/g | 将文件中所有p1均用p2替代 |
:n1,n2s/p1/p2/g | 将n1到n2行中所有p1均用p2替代 |
7 vi的set指令
按键 | 功能 |
---|---|
:set ic | 搜寻时忽略大小写 |
:set noic | 搜寻时不忽略大小写 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |