阅读文本大概需要3分钟。
0x01:VI有三种基本的工作模式
- 指令模式
- 文本输入模式
- 行末模式
他们的相互关系如下:
- 指令模式(Command Mode)输入a、i、o进入文本输入模式(Input Mode)。
- 文本输入模式(Input Mode)下按ESC进入指令模式(Command Mode)
- 指令模式(Command Mode)下输入“:”进入行末模式(Last Line Mode)
- 行末模式(Last Line Mode)下指令错误返回指令模式(Command Mode)
0x02:指令模式(Command Mode)
指令模式主要使用方向键移动光标位置进行文字的编辑,下面列出了常用的操作命令及含义。
0 :光标移动至行首
h :光标左移一格
l :光标右移一格
j :光标下移一行
k :光标上移一行
$ A :将光标移动到该行最后
PageDn :向下移动一页
PageUp :向上移动一页
d 方向键 :删除文字
dd :删除整行
pp :整行复制
r :修改光标所在的字符
S :删除光标所在的列,并进入输入模式
0x03:文本输入模式(Input Mode)
在指令模式下(Command Mode)按a/A键、i/I键、o/O键进入文本模式,文本输入模式的命令及其含义如下所示。
a :在光标后开始插入
A :在行尾开始插入
i :从光标所在位置前面开始插入
I :从光标所在列的第一个非空白字元前面开始插入
o :在光标所在列下新增一列并进入输入模式
O :在光标所在列上方新增一列并进入输入模式
ESC :返回命令行模式
0x04:末行模式(Last line Mode)
末行模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作。主要命令如下
:q :结束Vi程序,如果文件有过修改,先保存文件
:q!:强制退出Vi程序
:wq :保存修改并退出程序
:set nu :设置行号
0x05:VI列编辑操作
- 删除列
1)光标定位到要操作的地方
2)CTRL v 进入“可视 块”模式,选取这一列操作多少行
3)d 删除
- 插入列
插入操作的话知识稍有区别。例如在每一行前都插入"() ":
1)光标定位到要操作的地方
2)CTRL v 进入“可视 块”模式,选取这一列操作多少行
3)SHIFT i或者I(大写字母i) 输入要插入的内容
4)ESC 按两次,会在每行的选定的区域出现插入的内容
列编辑模式非常有用,开发时经常用到properties配置文件,要同时注释多行配置项时,使用列编辑模式非常便捷。