1) 打开文件
vi filename:打开或新建文件,并将光标置于第一行行首,如果文件不存在,则会新建文件。
2) 编辑文件
如果通过vi打开一个已经存在的文件,首先进入命令模式,此时输入的任何字符都被视为命令,不能输入内容。
注:1编辑时临时查看文件夹 可按Esc进入命令模式,然后! ls -all ,回车回到编辑页面
2.放入后台,ctrl+z,可按jobs查看后台内容
3) 保存文件
一定要先退出插入模式(按Esc进入命令模式),然后,shift + zz (按住 “shift” + 按两下“z”键) 即可保存退出当前文件。
vi实用命令
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 |
不显示行号 |