1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)/编辑模式
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
![](https://i-blog.csdnimg.cn/blog_migrate/71e05e72225352db6c250a85338b1107.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b4c1eb2045135e75bab73bc54de9642d.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/11f063b5642bb085c5d868d82c7eaead.jpeg)
vi基本操作
显示行号输入命令 | :set nu |
隐藏行号输入命令 | :set nonu |
进入vi
进入vi之后,是处于「命令行模式(command mode)」,要切换到「插入模式(Insert mode)」才能够输入文字。
切换至插入模式(Insert mode)编辑文件
切换至插入模式(Insert mode)编辑文件:按下字母i
Insert 的切换
按「i」切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
处于「插入模式(Insert mode)」就只能一直输入文字,发现输错了字,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
命令行模式功能键
/要查找的词 | n查找下一个,N查找上一个 | |
:noh | 取消高亮显示 | |
:s/old/new | 替换当前行匹配到的第一个old为new | |
:s/old/new/g | 替换当前行匹配到的所有old为new | |
:%s/old/new | 替换文档中每一行匹配到的第一个old为new | |
:%s/old/new/g | 替换文档中匹配到的所有old为new |
编辑模式功能键
按键 | 功能 |
i | 当前光标前 |
a | 当前光标后 |
i | 当前光标行的下一行(新创建一行) |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行(新创建一行) |
退出编辑模式:Esc
一般模式功能键
复制
yy | 复制光标当前一行 |
y 数字y | 复制一段(从光标当前行到后n行) |
yw | 复制一个词 |
粘贴
p | 箭头移动到目的行粘贴 |
撤销
u | 撤销到上一步 |
删除
dd | 删除光标当前行 |
d 数字 d | 删除光标(含)后多少行 |
dw | 删除一个词 |
剪切
x | 剪切一个字符(当前光标),相当于del |
X | 剪切一个字符(当前光标的前一个),相当于Backspace |
移动
shift+6(^) | 移动到行头 |
shift+4($) | 移动到行尾 |
w | 移动到下一个词(词头位置) |
e | 移动到当前词尾 |
1+G | 移动到任意页头,数字 |
G | 移动到页尾 |
任意数字+G | 移动到任意行 |
修改
r | 修改光标下的字符 |
R | 依此修改成输入的字符 |