实验三 vi编辑器的使用

实验三 vi编辑器的使用
一、实验目的
学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。
二、实验注意事项
实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容及步骤
1.进入和退出vi
(1)进入vi,创建一个file.c文件。 命令: vi file.c 。
(2)进入插入方式,输入如下C程序,将该文件存盘,回到shell状态下。
#include<stdio.h>
int main()
{
float a,b,x;
printf(“Please input a,b:”);
scanf(“%5.2f,%5.2f”,a,b); // scanf(“%f,%f”,&a,&b);
x=a%b; //x=(int)a%(int)b;
printf(“x=%5.2f\n”,x);
return 0;
}
进入插入方式命令: i ,文件存盘回到shell状态命令: :wq 。
(3)运行gcc file.c -o myfile,编译该文件,会发现错误提示,理解其含义。
编译命令:gcc file.c -o myfile <回车>
警告: 在这里插入图片描述

警告:
在这里插入图片描述

错误:在这里插入图片描述
(4)重新进入vi,对该文件进行修改,然后存盘,退出vi。重新编译该文件,如果编译通过,运行该程序。运行程序命令:./myfile
注意:在错误程序行旁边注释正确程序。

(5)运行man date>file10,然后用vi打开file10文件,使用x,dd命令删除某些文本行,使用u命令复原此前的情况,使用c,r,s等命令修改文本内容,使用检索命令进行给定模式的检索。
删除光标所在的字符命令: x 。
删除光标前面那个字符命令: 1X 。
从光标位置删至到行尾命令: D 。
从光标位置删至到行首命令: d0 。
复原命令: u 。
修改命令举例:
c: c5G+新文本+ESC键:首先删除光标所在行至第5行,然后接收用户输入的新文本
r: 3ra:从光标开始向右三个字符被a取代
s: 3s123:从光标开始向右三个字符被字符序列123取代
搜索命令:
向前字符串检索举例: :/man/- 解释: 从当前行开始向后检索man,光标停在首先找到的那一行的前一行的行首
向后字符串检索举例: :?man 解释: 从当前行开始向上检索man, 光标停在首先找到的
那一行的行首
查找字符命令举例: :fman 解释: 从当前行向后查找man,光标停在首先找到的字符上
:Fman 解释: 从当前行向前查找man,光标停在首先找到的字符上
全局替换命令举例: :1, s / a / A / g 解释:将文本中所有的 a 用 A 替换 : 1 , 50 s / a / A / g 解释:将文本中前 50 行所有的 a 用 A 替换 : 1 , s/a/A/g 解释: 将文本中所有的a用A替换 :1,50s/a/A/g 解释: 将文本中前50行所有的a用A替换 :1, s/a/A/g解释:将文本中所有的aA替换:1,50s/a/A/g解释:将文本中前50行所有的aA替换:1,s/a/A/c 解释: 以交互式将文本中所有的a用A替换

2.新建文件
(1)请在主目录(/home/student)下建立一个名为 vitest 的目录;
命令: mkdir /home/awei/vitest
(2)进入 vitest 这个目录当中;
命令: cd /home/awei/vitest
(3)将 /etc/manpath.config 拷贝到本目录下;
命令: cp /etc/manpath.config .
(4)使用 vi 开启本目录下的 manpath.config 这个文件;
命令: vi manpath.config
(5)在 vi 中设定一下行号;
设置行号命令: :set nu 。(取消行号命令: :set nonu 。)
(6)移动到第67 行,向右移动 26 个字符,请问您看到的是什么目录?
移动到第67 行的命令: 67G 向右移动 26 个字符的命令: 26l
看到: 在这里插入图片描述

(7)再向左移动16个字符的命令: 16h 看到: 在这里插入图片描述

(8)回到当前行第一个字符处命令: 0 移动到当前行的行尾命令: $
(9)移动到第5行(包含当前行)词尾命令: 4j 。再回到当前行的第一个字符处 0 。
(10)光标向前移至下一个词的开头命令: w 。
(11)光标后退到前一个词的开头命令: b 。
(12)移动到第一行,并且向下搜寻一下『 modify 』这个字符串,请问他在第几行?
移动到第一行: 1G , 向下搜寻一下“modify ” :?modify 它在 77 行。
在这里插入图片描述

(13)接着下来,我要将 50 到 70 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令?
命令: :50,70s/man/MAN/c
(14)修改完之后,突然反悔了,要全部复原,有哪些方法?
多次使用u
:q!
(15)我要复制51到60行这十行的内容,并且贴到最后一行之后;
51G10yyGp 或 :51,60co$
(16)删除11到30行之间的20行;
11G20dd
(17)将这个文件另存成一个 man.test.config 文件;
:w man.test.config
在这里插入图片描述

(18)到第29行,并且删除 15 个字符;
29G15x
(19) 请问目前的文件有多少行与多少字符?用什么命令统计?
在这里插入图片描述

122行 4973字符数 命令: CTRL+G
(20)储存后离开吧。
:wq
四、实验报告要求
1.按实验步骤写出实验命令及运行结果,回答所提问题。
2.总结上机过程中所遇到的问题和解决方法及感想。

感想:对于同一个字符,在不同的命令下作用是不一样的。比如“ ”,在命令方式下, ”,在命令方式下, ,在命令方式下,表示将光标移动至行尾;而在底行方式下$表示缓冲区最后一行。
此外就是对这三种方式的转换和所处方式的判断,进入vi时为命令方式,此时按插入命令,如:i a等则进入插入方式,也叫写入方式,因为该方式下所有的字符都会被输入进去而不会被当作命令。此时,需按ESC键退出输入方式。在命令方式下输入:进入ex转义方式,也叫底行方式,因为该方式下的命令都会显示在最后一行。底行方式执行完会自动进入命令方式。若要退出vi,需在命令方式下敲入“:wq”,然后敲回车即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值