vi是Linux系统的第一个全屏幕交互式编辑工具,在嵌入式的 学习中是一个不可或缺的强大的文本编辑工具。
一、三种模式
- 命令模式
- 如何进入命令模式:按esc键
- 复制:yy nyy(n:行数)
- 删除(剪切): dd ndd
- 粘贴:p
- 撤销:u
- 反撤:ctrl r
- 光标移动首行: gg
- 光标移动末行: G
- 光标移动行尾:$
- 光标跳到第n行
- shift ng
- 搜索:/或者?(搜索下一个用n)
- 调整代码格式:gg=G
- 插入模式
- 进入插入模式
- 先按esc键,然后按以下任意键:a i o A I O
- 新增 (append)
- – a从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
- – A从光标所在列最后面的地方开始新增资料
- 插入 (insert)
- – i从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。
- – I从光标列的第一个非空白字符前面开始插入资料
- 打开 (open)
- – o在光标所在列下新增一列并进入输入模式。
- – O在光标所在列上方新增一列并进入输入模式。
- 底行模式
- 进入底行模式:先按esc进入命令模式,然后按空格或者冒号。
- 指定第几行到第几行复制:5,10y
- 指定第几行到第几行删除: 5,10d
- 保存:w
- 退出:q
- 保存并退出:wq 或 x
- 强制:!
- 竖着分屏:vsp
- 横着分屏:split
- 取消分屏:on
- 查找:/str
- 取消高亮:noh
- 替换
- s/str1/str2 光标所在行第一个str1替换成str2
- s/str1/str2/g 光标所在行所有str1替换成str2
- %s/str1/str2/g每一行中所有str1来替换成str2
- n,$s/str1/str2/g替换第n行到最后一行中所有str1为str2
- 设置行号:set nu
- 取消:set nonu
二、模式转换过程图