1、三种模式以及切换
①命令行模式
②插入模式 (进入文件编辑,按ESC进入底行模式)
③底行模式
2、vi模式切换命令
a ---> [进入编辑状态,从当前光标的位置后一个插入字符]
A ---> [进入编辑状态,从当前行尾插入字符]
i ---> [进入编辑状态,从当前光标的位置前一个插入字符]
I ---> [进入编辑状态,从当前行首插入字符]
o ---> [进入编辑状态,插入一行,光标移到行首开始插入字符]
O ---> [进入编辑状态,光标前加空行,光标移到行首开始插入字符]
ESC ---> 进入命令状态
:![Command] 在vi编辑器中执行外部Command命令 【:!date】查看当前时间
3、粘贴和拷贝
[N]x ---> (Expurgate) 删除从光标开始的连续N个字符
[N]dd ---> (delete) 删除光标开始的连续N个字符并复制到编辑缓冲区
[N]yy ---> (yank)负责光标开始连续N行到缓冲区
p(P) ---> (Put) 从编辑缓冲区负责文本到光标处
u ---> (undo) 取消上一次操作
4、保存和退出
:q ---> (quit) 退出没有修改的文件
:q! ---> 强制退出,且不保存修改过的部分
:w ---> (Write) 保存文件,但不退出
:x ---> (Exit) 保存文件并退出
:w File ---> 另存为File,不退出
:r File ---> 读入File内容插入到光标位置
5、【高级命令】 光标命令
h ---> 左移
l ---> 右移
j --->下移
k --->上移
:N ---> 移动光标第N行
1G ---> 移动到光标的文件第一行
G ---> 移动到最后一行
:set number ---> 设置显示行号
:set nonumber ---> 取消显示行号
6、【高级命令】 查找命令
/string ---> 查找字符串【n继续向下查找,N反向继续查找,支持正则表达式查找: /^the】
7、【高级命令】替换命令
利用:s 命令实现字符串替换
:s/str1/str2/ ---> [:范围s/ old/ new] 默认当前行
:s/str1/str2/g ---> g 全部替换,不加g只替换一个
: .,$s/str1/str2/g ---> 当前行到最后一行,全部替换
:1,$s/str1/str2/g ---> 第一行到最后一行,全文
: %s/str1/str2/g ---> 全文
8、【高级命令】负责剪切命令
y0 ---> 光标到行首复制,【行部分复制】
y$ ---> 光标到行尾
d0 ---> 光标到行首字符剪切入剪切板
d$ ---> 光标到行尾字符剪切入剪切板
range y ---> 块复制, [:119,125 y] [:,$y]