当前位置:文档之家› 2-实验二 使用vi编辑器

2-实验二 使用vi编辑器

实验二使用vi(Visual interface)编辑器一、实验目的学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。

二、实验内容1.进入和退出vi。

2.利用文本插入方式建立一个文件。

3.在新建的文本文件上移动光标。

4.对文本文件执行删除、复原、修改、替换操作。

三、实验步骤1.进入和退出vi<1> 进入vi在系统提示符($)下输入命令vi和想要编辑(建立)的文件名(如example),便可进入vi。

<2> 退出vi在命令方式下可有几种方法退出vi编辑器::wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到shell下。

:ZZ 仅当作过修改时才将缓冲区内容写到文件上。

:x 与:ZZ 相同。

:q! 强行退出vi。

感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。

这样,先前对该文件所做的修改或输入都被抛弃。

2.新建文件<1> 在UNIX提示符$之后,输入命令:vi myfile,然后按〈Enter〉键。

<2> 输入插入命令i(屏幕上看不到字符i)。

<3> 然后,输入以下文本行:To the only woman tht I,For mang year you have been my wife<4> 发现这两行有错,进行改正:按〈Esc〉键,从插入方式回到命令方式。

按光标上移键,使光标移到第一行。

按光标左移键,使光标移到“tht”的第二个“t”处。

输入i(这是插入命令),然后输入a。

该行变成如下形式:To the only woman that I,按光标右移键,使光标移到“I”上。

我们想在“I”之后输入一个空格和单词“love”。

为此,输入附加命令“a”。

结果屏幕显示为:To the only woman that a I,这是怎么回事儿?......原来是:我们先前使用了插入命令i,至今并未用〈Esc〉键返回命令方式。

所以,输入的所有字符都作为输入文本予以显示。

<5> 按〈Esc〉键,返回命令方式。

利用x命令删除错误字符。

然后,进入插入方式,输入正确字符。

<6> 最后输入如下所示的文本:To the only woman that I love,For many year you have been mywwifeI live you wich my lifeabd could not have picked much better.<7> 将你编辑的文本文件存盘。

(利用:wq 命令,或者:x 命令)<8> 重新进入vi编辑程序,编辑上面的文件。

(如:$ vi myfile)<9> 将光标移到第二行的year的r处。

输入a命令,添加字符s。

<10> 利用取代命令r将mywwife改为my wife。

<11> 将光标移至第三行。

输入新行命令O(大写字母),屏幕上有什么变化? ---光标移至上一行(新加空行)的开头。

<12> 输入新行的内容:We've been through much together<13> 按〈Esc〉,回到命令方式。

将光标移到第四行的live的i字母处。

利用替换命令s将i改为o。

<14> 在第四行的you之后添加单词dearly。

将wich改为with。

<15> 修改后的文本是以下内容:To the only woman that I love,For many years you have been my wifeWe've been through much togetherI love you dearly with my lifeand could not have picked much better.将该文件存盘,退出vi。

附录:(参考文档;man vi 和vi –help)1、关于文本编辑器;Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS 上一样。

它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。

2、vi 编辑器;为什么要学会简单应用vivi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。

当您没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要字符模式下的编辑器vi;vi或vim 编辑器在创建和编辑简单文档最高效的工具;3、vi 编辑器的使用方法;3.1 如何调用vi ;[root@localhost ~]# vi filename~~~~~~~~3.2 vi 的三种命令模式;Command(命令)模式,用于输入命令;Insert(插入)模式,用于插入文本;Visual(可视)模式,用于可视化的的高亮并选定正文;3.3 文件的保存和退出;Command 模式是vi的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。

当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令;:w 保存;:w filename 另存为filename;:wq! 保存退出;:wq! filename 注:以filename为文件名保存后退出;:q! 不保存退出;:x 应该是保存并退出,功能和:wq!相同3.4 光标移动;当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标;j 向下移动一行;k 向上移动一行;h 向左移动一个字符;l 向右移动一个字符;ctrl+b 向上移动一屏;ctrl+f 向下移动一屏;向上箭头向上移动;向下箭头向下移动;向左箭头向左移动;向右箭头向右移动;我们编辑一个文件时,对于j、k、l和h键,还能在这些动作命令的前面加上数字,比如3j,表示向下移动3行。

3.5 插入模式(文本的插入);i 在光标之前插入;a 在光标之后插入;I 在光标所在行的行首插入;A 在光标所在行的行末插入;o 在光标所在的行的下面插入一行;O 在光标所在的行的上面插入一行;s 删除光标所在的一个字符,然后进入插入模式;S 删除光标所在的行,然后进入插入模式;3.6 文本内容的删除操作;x 一个字符;#x 删除几个字符,#表示数字,比如3x;dw 删除一个单词;#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词;dd 删除一行;#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;d$ 删除光标到行尾的内容;J 清除光标所处的行与下一行之间的空格,把光标行和下一行接在一起;3.7 可视模式;在最新的Linux发行版本中,vi提供了可视模式,因为这个功能是vim才有的。

如果您用的vi没有这个功能,就换成vim就有了。

打开可视模式,按ESC键,然后按v就进入可视模式;可视模式为我们提供了极为友好的选取文本范围,以高亮显示;在屏幕的最下方显示有;-- 可视 --或--VISUAL--如图:退出可视模式,还是用ESC键;3.9 复制和粘帖的操作;其实删除也带有剪切的意思,当我们删除文字时,可以把光标移动到某处,然后按shift+p键就把内容贴在原处,然后再移动光标到某处,然后再按p或shift+p又能贴上;p 在光标之后粘帖;shift+p 在光标之前粘帖来举一例:比如我们想把一个文档的第三行复制下来,然后帖到第五行的后面,我们应该怎么做呢?有两种方法;第一种方法:先把第三行删除,把光标移动到第三行处,然后用dd动作,接着再按一下shift+p键。

这样就把刚才删除的第三行帖在原处了。

接着我们再用k键移动光标到第五行,然后再按一下p键,这样就把第三行的内容又帖到第五行的后面了;第二种方法;进入可视模式,按ESC键,然后按v键。

移动鼠标指针,选中第三行的内容,然后按y键复制;再移动指针到第五行,最后按p键;所以复制和粘贴操作,是命令模式、插入模式及可视模式的综合运用;我们要学会各种模式之间的切换,要常用ESC键;更为重要的学会在命令模式下移动光标;3.10 关于行号;有时我们配置一个程序运行时,会出现配置文件X行出现错误。

这时我们要用到行号相关的操作;为所有内容添加行号;按ESC键,然后输入::set number光标所处位置在屏幕的右下角,有类似如下的;57,8 27%在这之中,57表示第57行,8表示第8个字符;3.11 查找和替换功能;3.11.1 查找;首先,我们要进入ESC键,进入命令模式;我们输入/或?就进入查找模式了;/SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方;?SEARCH 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的举一例:比如我想在一个文件中找到swap单词,我应该如下做;首先按ESC键,进入命令模式,然后输入;/swap或?swap3.11.2 替换;按ESC键进入命令模式;:s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;:%s /SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;:#,# s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示;举例说明:比如我们有一篇文档要修改;我们把光标所在的行,把所有单词the,替换成THE,应该是::s /the/THE/g我们把整篇文档的所有的the都替换成THE,应该是::%s /the/THE我们仅仅是把第1行到第10行中的the,替换成THE,应该是;:1,10 s /the/THE/g。

相关主题