实验4 vi编辑器的使用
一、 实践目的
1、上机学习 Linux操作系统的vi编辑器 2、学会Linux下的文本编辑
二、 实践要求
1、 认真阅读和掌握本实践的指导材料。 2、 上机操作。
三、 背景知识 (1) vi编辑器概述
vi是字符界面下的全屏幕文本编辑器
vi只能编辑普通的ASCII文件,不是格式化程序,不支持居中、字体、字形等格式 (2) vi的两种模式
vi有两种基本的工作模式:命令模式和文本输入模式 在命令模式下,用户键入的字符被作为命令解释执行 在文本输入模式下,用户键入的字符被作为输入的文本 (3) vi两种模式间的转换(见图3.1)
命令模式下键入a或i进入文本输入模式 文本输入模式下键入Esc进入命令模式
(4) 打开文件
命令格式:vi [文件名]
如文件存在,则打开该文件,如文件不存在,则创建一个新文件 如文件名省略,则创建一个无名的新文件(需要在存盘时指定文件名) 注意:打开文件后,vi处于命令模式 (5) 编辑文件
:提示符 其他命令 : 命令模式 启动vi a,i 文本输入模Esc wq,q,q! 退出vi 图3.1
在命令模式下,键入a或i即可进入文本输入模式,此后输入的字符将显示在编辑屏幕上。
移动键盘上的方向键即可上、下、左、右移动光标 使用Backspace键可删除光标前字符 使用Enter键可增加新的一行 (6) 存盘,退出
在命令模式下,键入ZZ,即可保存文件并退出vi 在命令模式下,键入 :,出现 “ : 提示符”,输入: w [文件名] 保存文件,但不退出vi wq [文件名] 保存文件,并退出vi q 退出vi
q! 不保存所做修改,退出vi (7) vi帮助
vi程序中,help命令可以提供帮助
格式:在命令行状态下,输入:help 命令名即可得到对某个命令的帮助。如 :help wq
看完帮助后,键入:q即可退出帮助屏幕,返回到文件中 (8) 存储缓冲区
vi会为正在被编辑的文件在内存创建一个缓冲区
打开文件时,文件的内容会复制到缓冲区中,用户在屏幕上看到的是缓冲区的内容。
用户的输入和修改只会反映到缓冲区中,而不会反映到磁盘文件中。只有当用户键入存盘命令(w,wq,ZZ)时,缓冲区的内容才会写入文件 (9) 移动光标
在命令模式下,键入 0:将光标移动到当前行首 $:将光标移动到当前行尾 Ctrl-d:光标向下移动12行 Ctrl-u:光标向上移动12行 Ctrl-f:光标向下移动22行 Ctrl-b:光标向上移动22行 nG:将光标移动到第n行,如100G (10)复制、剪切、粘贴、取消、修改
在命令模式下,键入
yy:将当前行复制到临时缓冲区
dd:删除当前行,并将其内容保存到临时缓冲区 ndd:删除多行,并将其内容保存到临时缓冲区,如3dd p:将临时缓冲区内容复制到当前行的下一行 P:将临时缓冲区内容复制到当前行的上一行 u:取消上一次的修改 . :重复上一次的操作 (11)文本搜索
在命令模式下,键入 :,出现:提示符后,键入 /或?用来在文件中向前或向后搜索如: /Unix , ?linux (注意?与linux之间无空格)
搜索完毕后,在命令模式下键入n,会依次移动到下一个找到的文本上 (12)编辑多个文件
命令格式: vi file1 file file3 …..
首先编辑file1 , 在命令模式下,键入 :n将编辑下一个文件,键入:ar将显示编辑文件列表,键入:N将编辑上一个文件。 (13)读入一个文件内容
命令格式: 在命令模式下,键入 :r file 作用:将文件file的内容读入到光标所在行的下一行 (14)将文件的部分内容保存为另一个文件
命令格式:n1,n2 w file
? 示例: 5,20 w t2.txt,将文件的第5行到第20行的内容保存到文
件t2.txt中。
(15)使用缓冲区
vi中除了保存文件副本的临时缓冲区外,还有两类缓冲区:数字编号缓冲区和字母编号缓冲区,这两类缓冲区用来保存先前删除和复制的内容 i.
数字缓冲区
数字编号缓冲区编号1-9,每次删除操作(dd,ndd)的文本都放入数字缓冲区 每次删除时,各个数字编号缓冲区内容依次下移,缓冲区1总是存放最新删除的文本
? 示例:“2p:将第2个缓冲区的内容复制到下一行 (16) 3.15.2 字母缓冲区
vi提供26个命名的缓冲区,用小写字母a-z表示,用来存放用户删除或复制的内容,用户需要指定缓冲区的名字去引用它们。 ? 示例(命令行状态下):
? “wdd:删除当前行,将副本保存在缓冲区w中 ? “wp:将缓冲区w的内容复制到当前行下一行
? “ayy:将当前行的内容复制到缓冲区a中 (17)vi中运行shell命令
命令格式: !command ? 示例:!ls, !date (18)将命令的执行结果加入vi中
? 示例:在命令模式下键入 :r !ls ,将ls命令执行结果加入到vi中 (19)设置vi的环境变量
命令:set [选项]
相关文件: .exrc 。该文件用来保存vi中的设置选项,如用户主目录有.exrc ,vi启动时根据此文件设置环境变量 ? 示例:显示行号 set number ? 示例:不显示行号 set nonumber 四、 实践内容
4.1 回到根目录,创建文件夹ex4,然后进入该目录 cd / mkdir ex4 cd ex4
4.2 键入vi或vim,新建一个新文件exam41.txt vim exam41.txt
4.3 编辑文件内容为abcdefg
提示:键入a或i即可进入文本编辑模式
4.4 退出vi,并保存
提示:先按ESC键,从编辑模式回到命令行模式,并输入命令 :wq,完成了保存退出
4.4再次打开exam41.txt,复制其中第1行内容abcdefg到第2行、第3行,并保存退出
提示:在命令模式下(ESC键切换),键入 yy:将当前行复制到临时缓冲区
dd:删除当前行,并将其内容保存到临时缓冲区 ndd:删除多行,并将其内容保存到临时缓冲区,如3dd p:将临时缓冲区内容复制到当前行的下一行 P:将临时缓冲区内容复制到当前行的上一行 u:取消上一次的修改
. :重复上一次的操作 结果:
4.5再次打开exam41.txt,要求: (1)将第3行内容删除 (2)取消上一次的操作 (3)重复上一次的操作
提示:在命令模式下(ESC键切换),键入
yy:将当前行复制到临时缓冲区
dd:删除当前行,并将其内容保存到临时缓冲区 ndd:删除多行,并将其内容保存到临时缓冲区,如3dd p:将临时缓冲区内容复制到当前行的下一行 P:将临时缓冲区内容复制到当前行的上一行 u:取消上一次的修改 . :重复上一次的操作
4.6 在文件中exam41.txt查找efg这个词
提示:在命令模式下,键入 :,出现:提示符后,键入 /或?用来在文件中向前或向后搜索如: /Unix , ?linux (注意?与linux之间无空格) 结果:
4.7 保存退出exam41.txt,用vim新建文件exam42.txt,输入内容123456789,将文件exam41.txt的内容读入到文件exam42.txt中 提示:命令格式: 在命令模式下,键入 :r file
作用:将文件file的内容读入到光标所在行的下一行 结果:
4.8将exam42.txt文件中的第2行到第4行内容保存到exam43.txt文件中(exam43.txt不用自已新建) 提示:命令格式:n1,n2 w file
? 示例: 5,20 w t2.txt,将文件的第5行到第20行的内容保存到文
件t2.txt中。
4.9 使用vi创建文件exam44.txt,将当前系统的时间读入文件exam44.txt中,保存退出。
提示:命令格式: !command
? 示例:!date
4.10 用vi打开文件exam42.txt,使用set number看是否会显示行号,使用set nonumber看会发生什么变化。 提示:命令:set [选项]
? 示例:显示行号 :set number或:set nu ? 示例:不显示行号 :set nonumber或:set nonu ?