一、什么是vi
- 是一种文本编辑器,是Visual interface的简称;
- 而vim则是vi的强化版vi plus,专业全称Vi improved。
二、vi的优势
- 所有的类Unix系统(Unix like系统)都会自带vi文本编辑器,而其他的文本编辑器则不一定存在
- 许多软件的编辑接口都会主动呼叫vi
- vim具有程序编辑的能力,可以通过颜色来辨别语法,可以方便我们设计程序
- 编辑速度非常快
三、vi的编辑模式
- 命令模式
- 输入模式
- 末行模式
- 可视化模式
- 查询模式
四、进入各种模式的方法
- 命令模式:其他模式下按esc,进入后左下角什么都不显示,当第一次进入vi模式时,会显示文件名,行数,字节数
- 输入模式:命令模式下按a、i、o、A、I、O(左下角显示–INSERT–)
- 末行模式:命令模式下按 : 即shift+;
- 可视化模式:命令模式下按v
- 查询模式:命令模式下按/(从上往下查找)或?(从下往上查找)按n切换下一个,N切换上一个
五、如何退出vi编辑模式
在末行模式下:
- q 直接退出
- wq 保存并退出 == x
- q!不保存退出,即强行退出
- w 保存
- w!强行保存
在编辑模式下:ZZ保存并退出
六、vi命令模式的操作
- 跳到行首,在命令模式下按gg
跳到某x行行首,xgg或xG
gg=G - 复制
在命令模式下按yy复制当前行,在命令模式下按yy复制当前行,
xyy复制从当前行算起的x行xyy复制从当前行算起的x行 - 粘贴
p在光标后面或下面粘贴所复制内容p在光标后面或下面粘贴所复制内容
P在光标的前面或上面粘贴所复制内容
若复制的为整行,则在上面或下面粘贴复制的内容,若不为整行,则在后面或前面粘贴复制的内容 - 删除
在命令模式下,按dd删除光标所在行在命令模式下,按dd删除光标所在行
dw删除光标所在字节内之后的内容(包括光标位置)
de剪切删除光标所在字节内之后的内容(包括光标位置),可配合p命令使用 - 撤销
- 命令模式下按u,按几次u就撤销几次操作
- xu,撤销此前的x次操作
- CTRL+r 撤销最近一次的撤销操作,即恢复操作,相当于word中的CTRL+y
- 跳至行首使用 ^即 shift+6
- 跳至行尾使用 $即shift+4
七、vi末行模式的命令
- 打开新文件进行编辑 e [文件]
在末行模式下输入e ./dkxwj
即可打开另一个文件进行编辑 - 在当前文件中直接读取另一个文件 r [文件]
在末行模式下输入r ./dqwj
即可在当前文件中导入另一个文件,导入位置为光标所在行的下一行 - 替换, r /旧字符/新字符 g
g表示多个替换
- 将当前行中查找到的第一个root替换为root_new
s /root/root_new
- 将当前行所有root替换为root_new
s /root/root_new /g
- 将第2行到第4行中所有的sbin变为bin
2,4 s /sbin/bin/g
- 将所有的sbin替换为bin
% s /sbin/bin/g
- 在每一行的行首插入字符串new
% s/^/new/g
若要在行尾添加,只需将^改为$即可
- 显示行号
set nu
- 取消显示行号
set nonu
总结
- vi的功能十分强大,而且很繁琐,但是都很好用,这个需要多多练习,而且以上只是一小部分,下面附上一张比较完整的vi功能图,以供各位查阅,学习。
- vim与vi使用方法几乎完全相同,但是vim显示优于vi,另外,一般来说,vim在Linux虚拟机中并不是自带的,所以需要我们自行安装