vi的名字取自于visual,意为“直观”,它是一个全屏幕文本编辑程序。在Linux系统中vi是最常用的编辑程序,它的文本编辑功能十分强大,但使用起来比较复杂。初学者可能感到困难,经过一段时间的学习和使用后,你就会体会到使用vi非常方便。Linux系统中的vi其实是vim。vi与vim的用法很像,因为vim是vi的增强版,所以vi的功能vim都有,而且vim新增了许多vi没有的功能,它比vi容易使用。本章介绍vi编辑程序的两种工作模式,即命令模式和输入模式。
vi的启动与退出
1. vi
的启动
输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。
(1) vi
进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。
(2) vi file1
如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。
(3) vi+file1
如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。
(4) vi+Nfile1(N:为数字)
如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件第N行第1列的位置上。
(5) vi+/string file1
如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。
2.
退出
vi
建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。
(1) :w
将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:
:w filename(存入指定文件)
:q
(2) :wq
即将上面的两步操作可以合成一步来完成,先执行w,后执行q。
(3) :x和zz(注意:zz前面没有“:”)
功能与(2)等价。
(4) :q!(或:quit)
强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。
vi的两种模式
当vi工作在命令模式下,输入的字符被视为执行特定vi功能的命令;而工作在输入模式下,输入的字符是编辑文件的正文。命令模式是vi的默认模式,命令模式下输入英文大小写字母的含义是有区别的。两种模式的切换见图8.1。