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