基本上,vi分为3种模式,分别是“一般模式”、“编辑模式”和“命令模式”。
一般模式:以vi处理文件时,一进入该文件就是一般模式了。在这个模式中,可以使用上下左右方向键来移动光标,可以使用“删除字符”或“删除整行”来处理文件内容,也可以使用“复制”、“粘贴”来处理文件数据。
编辑模式:按i,I,o,O,a,A等字母之后才会进入编辑模式。在Linux中,按下上述字母后,在画面的左下方会出现INSERT或REPLACE字样,此时可进行写操作。按ESC键退出编辑模式回到一般模式。
命令行模式:在一般模式中,输入“:”或“/”就可将光标移动到最末一行。在该模式下,可进行搜寻数据、读取、存盘、大量字符替换、退出vi、现实行号等操作。
常用指令
(1)一般模式
Ctrl+f 屏幕向后翻一页
ctrl+b 屏幕向前翻一页
0 (数字0)移动到光标所在行的第一个字符处
$ 移动到光标所在行的最后一个字符处
G 移动到文件最后一行
n<Enter> 光标向下移动n行
/word 在光标之后查找名为“word”的字符串
:n1,n2s/word1/word2/g 在第n1行和n2行之间查找字符串word1,并将其替换为word2
:1,$s/word1/word2/g 从第一行到最后一行查找字符串word1,并将其替换为word2
:1,$s/word1/word2/gc 从第一行到最后一行查找字符串word1,并将其替换为word2,并且在替换前提示用户确认(confirm)
x,X x为向后删除一个字符,X为向前删除一个字符
dd 删除光标所在的整行
ndd 删除光标所在行的向下n行(包括光标所在行),如:20dd是删除20行
yy 复制光标所在行
nyy 复制光标所在行的向下的n行(包括光标所在行),如:20yy是复制20行
p,P p为复制的数据粘贴在光标下一行,P则为粘贴在光标上一行
u 恢复前一个动作
(2)编辑模式
i,I 在当前光标所在处插入输入的文字,已存在的字符自动后退
a,A 添加:由当前光标所在处的下一个字符开始输入,已存在的字符自动后退
o,O 插入新的一行,从光标所在行的下一行行首开始输入字符
r,R 替换:r替换光标索指的字符;R替换光标所指的字符,直到按下ESC为止
ESC 退出编辑模式,回到一般模式
(3)命令行模式
:w 将笔记的数据写入硬盘文件中
:w! 若文件属性为只读,强制写入该文件
:q 退出vi
:q! 强制退出不保存修改过的东东
:wq 保存后退出
:wq! 强制保存后退出
:w后接filename 将该文件另存为名为filename的文件(类似另存新文档)