实验二 vi编辑器的使用
一、实验目的
学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。
二、实验注意事项
实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容及步骤
1.进入和退出vi
(1)进入vi,创建一个file.c文件。 命令: mkdir 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);
x=a%b;
printf("x=%5.2f\n",x);
return 0;
}
进入插入方式命令: i ,文件存盘回到shell状态命令: :wq 。
(3)运行gcc file.c -o myfile,编译该文件,会发现错误提示,理解其含义。
编译命令:gcc file.c -o myfile <回车>
警告: Invalid format specifier in scanf function call 。
警告: Variable 'a' is used uninitialized whenever 'b' is used 。
错误: Invalid use of % operator with float operands 。
(4)重新进入vi,对该文件进行修改,然后存盘,退出vi。重新编译该文件,如果编译通过,运行该程序。运行程序命令:./myfile
注意:在错误程序行旁边注释正确程序。
(5)运行man date>file10,然后用vi打开file10文件,使用x,dd命令删除某些文本行,使用u命令复原此前的情况,使用c,r,s等命令修改文本内容,使用检索命令进行给定模式的检索。
删除光标所在的字符命令: x 。
删除光标前面那个字符命令: X 。
从光标位置删至到行尾命令: D 。
从光标位置删至到行首命令: d0 。
复原命令: u 。
修改命令举例:
c: c6G 删除光标所在行至第六行,然后接受用户输入的文本,然后按Esc
r: 4rB 从光标开始向右共有4个字符被B取代
s: 6s 光标所在字符及其后面的5个字符被新输入的字符替换
搜索命令:
向前字符串检索举例:/man 解释: 这个命令将搜索文本中的 "man" 字符串,并将光标移动到第一个匹配项
向后字符串检索举例:?123 解释: 这个命令将向后搜索文本中的 "123" 字符串,并将光标移动到最后一个匹配项。
查找字符命令举例: fx 解释: 这个命令将光标移动到下一个出现的字符 "x"。
Fx 解释: 这个命令将光标移动到上一个出现的字符 "X"。
全局替换命令举例::%s/old/new/g 解释:这个命令将替换文本中所有的 "old" 字符串为 "new"。
:s/apple/orange/ 解释: 这个命令将替换当前行第一个 "apple" 为 "orange"。
:s/g/app/orange/gc 解释: 将替换所有 "apple" 为 "orange",同时每一个都进行确认是否替换。
2.新建文件
(1)请在主目录(/home/student)下建立一个名为 vitest 的目录;
命令: mkdir /home/student/vitest
(2)进入 vitest 这个目录当中;
命令: cd /home/student/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行(包含当前行)词尾命令: 5G$ 。再回到当前行的第一个字符处。
(10)光标向前移至下一个词的开头命令: w 。
(11)光标后退到前一个词的开头命令: b 。
(12)移动到第一行,并且向下搜寻一下『 modify 』这个字符串,请问他在第几行?
移动到第一行: 1G , 向下搜寻一下“modify ” /modify 它在 77 行。
(13)接着下来,我要将 50 到 70 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令?
命令: :50,70s/man/MAN/gc
(14)修改完之后,突然反悔了,要全部复原,有哪些方法?
u
(15)我要复制51到60行这十行的内容,并且贴到最后一行之后;
:51,60t$
(16)删除11到30行之间的20行;
:11,30d
(17)将这个文件另存成一个 man.test.config 文件;
:w man.test.config
(18)到第29行,并且删除 15 个字符;
:29 然后15x
(19) 请问目前的文件有多少行与多少字符?用什么命令统计?
132行 4418字符 命令: :%s/\n//gn (行数)
:%s/\S//gn (字符数)
(20)储存后离开吧。
:wq
四、实验报告要求
1.按实验步骤写出实验命令及运行结果,回答所提问题。
2.总结上机过程中所遇到的问题和解决方法及感想。
通过本次实验,我们学习了如何使用vi编辑器创建、编辑、显示和加工文本文件。这些基本的编辑技巧对于日常的文本编辑工作非常有用,包括文件的创建、复制、删除、替换和搜索。同时,我们也学会了使用vi的撤销和保存功能来管理文本文件的修改。这些技能对于文本文件的编辑和维护非常重要。在今后的日子里面我要不断学习,争取拿到一份好的offer.