一.Vi编译器使用
1.Vi模式切换命令
<输入vim main.c>
1.1进入insert模式 <不需要ESC>
a: 进入当前光标下一位 A: 光标的行尾
i: 进入当前光标 I: 光标的行首
o: 进入光标下一行 O: 进入光标上一行
1.2进入底命令行模式<按ESC进入底行>
:! pwd 查看当前目录 :!date 查看当前时间
2.Vi拷贝与粘贴命令
10x: 删除从光标开始数10个字符
2dd: 删除从光标开始数2行
9,15d: 删除9到15行
ps ESC+:+%d 全部删除
3yy: 复制从光标开始数3行
p(小写): 粘贴 P(大写): 粘贴
u: 恢复上一次操作
<补充进阶>
1.单行操作
y0: 从光标到行首字符复制
y$: 从光标到行尾字符复制
d0: 从光标到行首字符剪贴
d$: 从光标到行尾字符剪贴
2.范围操作
114,120 y: 从114到120行字符复制
110,119 d: 从110到119行字符剪贴
3.Vi保存和退出
:q 退出没有修改的文件,若修改过命令报错
:q! 强制退出,不保存
:w 保存文件,不推出
:wq 保存文件并退出
:x 等价:wq
:w main.c 另存文件,不退出
:r main.c 读入main.c指定文件内容插入到光标位置 例如,从另一个文件中读入头文件
4.Vi光标命令
4.1光标的移动
4.2底行光标命令<按ESC进入底行>
:10 移动光标到第10行
:set number 设置显示行号 等价 :set nu
:set nonumber 取消显示行号 等价 :set nonu
4.2Insert状态下的命令<需要ESC+不需要:冒号>
1G 移动光标到文件第1行
G 移动光标到文件的最后1行
5.Vi查找命令
/sting 查找字符串 按n继续查找(N反向查找)
ps:支持正则表达式
/^the 以the开头 /end$ 以end结尾
6.Vi替换命令 类似与Ctrl+F查询
模板 :范围 s/被替换字符/替换字符/g
<不加范围默认光标所在行>
:s/old/new/ 替换new与old
:s/old/new/g 多g,表示替换当前行全部
<加上范围 .表示光标所在行 $表示文件末尾>
:.,$ s/old/new/g 多.,$ 表示从当前行替换到末尾
:1,$ s/old/new/g 表示从第1行替换到最后一行,即全部替换
:%s/old/new/g 等价上面,全部替换
7.Vi的分屏展示
Vi test.h
Vsp test.c
一边展示test.c,一遍展示test.h