什么是vi:
vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样,咱们一般操作linux服务器的时候都是没有图形化界面的, 怎么移动光标,到哪个位置,替换修改什么的都得用vi里面的操作
vi有两种模式
命令模式
进入vi时的默认模式,此模式下所有的用户输入都视为命令
用户在此模式下进行搜索、复制、替换等
编辑模式
用户在此模式下可以编辑文本内容,也就是这个模式下,可以随便输入内容,编辑模式只有一个作用,就是输入内容,其他的查找、粘贴、替换等等都得在命令模式下操作模式切换
命令模式进入编辑模式:
i | 当前位置 |
a | 下一位置 |
o | 下一行 |
编辑模式进入命令模式:
esc | 编辑模式进入命令模式 |
区分编辑模式和命令模式就看左下角有没有insert,左下角如果有insert就是编辑模式。
下面介绍命令模式常用的操作,注意都是在命令模式下的
退出vi
:q | 退出 vi |
:q! | 不保存退出 |
:wq | 保存退出 |
:x | 保存退出 |
:w | 保存 |
光标定位
M | 移动光标到页面* |
L | 移动光标到页面尾处 |
H | 移动光标到页面开始处 |
ctrl+f | 向后翻页 |
ctrl+b | 向前翻页 |
0 | 移动光标到行首 |
$ | 移动光标到行尾 |
/: | 从上往下开始查找,然后按n寻找下一个 |
?: | 从下往上开始查找,然后按n寻找下一个 |
撤销、重复、查找
/xxx | 从上往下开始查找 |
/?xxx | 从下往上开始查找 |
u | 撤销 |
. | 重复前一个动作 |
复制、粘贴、删除
nyy | 复制光标所在的向下n行内容 |
p | 在光标处粘贴复制的内容 |
ndd | 删除光标所在向下n行的内容 |
ctrl + d | 往下翻半屏内容 |
ctrl + u | 往上翻半屏内容 |
shift + g | 到文件末尾 |
dd | 删除整行 |
:set number | 显示行号 |
:set nonu | 取消显示行号 |
:1,3y | 复制第一行到第三行 |
:1,3d | 删除第一行到第三行 |
:1,3s/str/str_new/g | 替换第一行到第三行中的字符串 |
:%s/str/str_new/g | 替换所有行中的字符串 |