1、命令模式(Command mode)
在此模式下,输入的字符都将作为命令来解释执行。
2、输入模式(Insert mode)
输入的任何内容,将作为文件的内容被保存,并在屏幕上显示。
3、末行模式(Last line mode)
光标提留在屏幕的最末行,在此接受用户的命令并执行。末行模式可以执行Shell命令等。
以上三种模式可以相互切换,在shell下输入vi命令后,输入 i 进入输入模式,按下esc键,输入: 进入末行模式
Vi的一些基本命令:
屏幕翻滚命令--当编辑的文件较大时,使用此命令可以迅速的将要编辑的区域调入屏幕显示区。
翻屏命令:Ctrl +u 向上翻半屏
Ctrl +d 向下翻半屏
Ctrl +f 向下翻一屏,同PageDown键
Ctrl +b 向上翻一屏,同PageUp键
光标定位与移动:
0 光标移至行首 同home键
^ 光标移至行首第一个非空格字符
$ 光标移至行首,同End键
【n】G 光标移到第n行,没有指定n时,移到末行。
【n】I 光标移到第n列,没有指定n时,移到首列。
H、M、L 光标移到屏幕首、中、尾行行首。
h、j、k、l 光标向左、下、上、右移一个字符。同箭头键。
b、w 光标移到上一个词、下一个词首。
e 光标移到词尾。
(、)光标移到句首,句尾
{、} 光标移到段首,段尾
文本输入与删除:
a、A 在光标位置后,行尾后开始插入
i、I 在光标位置前,行首前开始插入
o、O在光标所在行之后,光标所在行之前的新行开始插入。
x、X 删除光标处、光标前的字符。与delete键相同。
dd 删除光标所在的行。
D 删除光标后面的文本。
J 删除当前行尾换行符。
......
文本修改和替换:
cc 修改光标所在的行。
C 修改光标处到行尾的文本。
c + 定位符 修改光标到指定范围内的文本。
r 用输入的字符替换光标处的字符。
R 用输入的文本逐个替换从光标处开始的各个字符,直到按下esc键。
s 用输入的文本替代光标处的字符,用esc键结束输入。
S 用输入的文本替代光标所在的行,用Esc键盘结束输入。
文本的拷贝与粘贴:
yy 拷贝光标所在行在缓冲区。
y+定位符 拷贝光标到指定范围内的文本。
撤销与重做:
u 撤销上一个命令所做的修改。
U 撤销最近针对一行所做的全部修改。