实验四vi编辑器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 vi编辑器
一、【实验目的】
掌握vi编辑器的使用。
了解Linux下C语言和执行。
二、【必备知识】
文本编辑器是所有计算机系统中最常使用的一种工具。用户在使用计算机的时候,往往需要建立自己的文件,无论是一般的文本文件、数据文件,还是编写的源程序文件,这些工作都离不开编辑器。
Linunx系统提供了一个完整的编辑器家族系列,如Ed、Ex、Vi和Emacs等,按功能它们可以分为两在类:行编辑器(Vi、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,修改的结果可以立即看出来,克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。
Vi是Linunx系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编辑工具,足见其生命力之强,而强大的生命力是其强大的功能带来的。以下将循序渐进地介绍如何使用Vi来建立、编辑、显示以及处理文件。
Vi是“Visual interface”的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
Vi不是一个排版程序,它不不像Word或WPS那样可以对字体、格式、段落等其他性进行编排,它是一个文本编辑程序,没有菜单,只有命令,且命令繁多。
Vi有三和基本工作模式:命令行模式、文本输入模式和末行模式。
·命令行模式
任何时候,不管用户处于何和模式,只要按一下〈Esc〉键,即可使Vi进入命令行模式;我们在shell环境(提示符为$或#)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键
盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi 在接受用户命令之后完成相应的动作。
·文本输入模式
在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r、或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当
做文件内保存起来,并将其显示在屏幕上。在输入过程中,若想回到命令模式下,按〈Esc〉键即可。
·末行模式
末行模式也称es转义模工。
在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模
式下,用户按“:”键即可进入末行模式下,此时Vi会显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“.”作为末行模式的提示符,等侍用户输入命令。多数文件管理命令都是在此模式下执行的。末行命令执行完后,Vi自动回到命令模式。
范例 1
进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不文本输入。
这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位上(用表示),其余各行行首均有一个“~”符号,表示该行为空行。最后一行也称状态行,显示出当前
在编辑的文件名以及其状态。如本例是[New File],表示example.c是一个新建的文件。如果example.c文件已在系统中存在,那么输入上述命令后,则在屏幕上显示出
该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数
和字符数。
如果只键入Vi而不带文件名,也可以进入Vi。之后在光标处键入文件内容,退出
Vi时,只需在退出命令后输入文件名即可。
例如:编辑example.c文件。
#example.c
范例 2
用户登录到系统中之后,系统给出提示符“#”。在提示符后键入Vi和想要编辑(或建立)的文件名,便可进入Vi。
如要从命令模式转换到编辑模式,可以键入命令a 或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
若在末行模式下输入过程中改变了主意,可按〈Esc〉键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使Vi回到命令模式下。
例如:把从文件从第一行至文件尾将大写A全部替换成小写a。
:1,$s/A/a/g (在最后一行模式下完成)
范例 3
$ vi example.c
然后键入:
#include〈stdio.h〉
main( )
{ int k ;
for ( k=0 ; k<3 ; k++ );
sdd ( ) ;
}
sdd ( )
{static int x=0;
x++;
printf (“x=%d\n”, x);
}
当用Vi建立一个新文件时,在进入Vi的命令中也可以不给出文件名,当编辑完文件需要保存数据时,再由用户指定文件名。
进入Vi时用户不仅可以指定一个待编辑的文件名,而且还许多附加操作。
如果希望在进入Vi之后,光标处于文件中特定的某行上,可在Vi后加上任选项+n,其
中n为指定的行数。
范例 4
$ vi +5 examplel.c后
光标将位于文件examplel.c中的第5行上。
如果希望在进入Vi之后光标处于文件最末行,则只需把命令中附加项“+”后面
的数字n省略掉即可。
在进入Vi时,除了可以指定一个光标始行号之外,还可以在命令中指定一个模式串,此时在进入Vi后,光标就处于文件中第一个与指定模式串相匹配的那行上。
使用Vi可以同时编辑多个文件,只要在进入Vi的命令写入所要操作的文件即可,还可以使用通配符。
范例 5
# vi *.cat 可以编辑所有后缀为cat的文件。
当编辑完文件,准备退出vi返回到shell时,可以使用以下几种方法之一。
在命令模式中,连按两次大写字母Z,若当前编辑的文件曾经被修改过,则vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则vi直接退出,返回到shell。
在末行模式下,输入命令
:w
vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。
范例 6
:w! newfile
此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:
File exists (use ! to override)
此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令