UNI新手指南第部分vi文本编辑器.docx

上传人:b****5 文档编号:6715683 上传时间:2023-01-09 格式:DOCX 页数:16 大小:425.76KB
下载 相关 举报
UNI新手指南第部分vi文本编辑器.docx_第1页
第1页 / 共16页
UNI新手指南第部分vi文本编辑器.docx_第2页
第2页 / 共16页
UNI新手指南第部分vi文本编辑器.docx_第3页
第3页 / 共16页
UNI新手指南第部分vi文本编辑器.docx_第4页
第4页 / 共16页
UNI新手指南第部分vi文本编辑器.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

UNI新手指南第部分vi文本编辑器.docx

《UNI新手指南第部分vi文本编辑器.docx》由会员分享,可在线阅读,更多相关《UNI新手指南第部分vi文本编辑器.docx(16页珍藏版)》请在冰豆网上搜索。

UNI新手指南第部分vi文本编辑器.docx

UNI新手指南第部分vi文本编辑器

UNIX新手指南,第2部分:

vi文本编辑器

级别:

中级

(subject=vi文本编辑器),咨询师,自由撰稿人

2007年1月18日

对于新用户来说,vi文本编辑器可能看起来不是很直观,但是不要误会,世界上许多最优秀的程序员仍然广泛地使用这种经历了30年之久的古老工具,之所以会这样,有一个很好的理由。

vi文本编辑器将操作分为插入模式和命令模式,这允许您使用超快的键盘命令对文本和用户定义的段进行动态地编辑、插入和移动。

开始之前

了解本教程中包含的内容以及如何最好地利用本教程。

关于本系列

这个由四部分组成的文章系列将从用户的角度出发,介绍UNIX?

的基本知识。

对于很久没有使用类UNIX操作系统的用户来说,这个初始的教程是个很好的温习。

对于具有Windows?

使用经验的新的UNIX用户来说,它也很有价值,因为其中引用了Windows,并将两者进行了比较。

本系列中的后续教程将详细地介绍一些特定的应用程序(比如vi),并讨论关于Shell的诀窍与技巧。

关于本教程

vi编辑器已有30多年的历史,并且到现在为止,仅对其进行了很少的更改。

它保持了不使用鼠标而通过键盘驱动的界面,这使得用户可以始终将手指放在标准键位处。

用户可以在两种模式(插入模式和命令模式)之间进行切换,以便分别插入文本或对文档进行操作和导航。

命令模式为用户提供了各种各样的功能,而这些功能在鼠标驱动的界面中通常需要通过指向-点击(point-and-click)来实现。

目标

本教程的目标是让vi的新用户能够熟练地对文档进行创建、编辑和导航。

本文重点关注于常用的vi命令,并详细地讨论了vi中一些比较隐秘的特性。

在学习使用vi时需要记住的最重要的一点是,起初您可能会感觉到文本编辑的速度很慢并且很麻烦。

您可以回忆一下第一次使用鼠标或学习使用键盘进行输入的情形。

这个具有30多年历史的应用程序强迫用户以一种新的模式进行思考,但是花费大量的学习时间是值得的,最终能够实现快速的、不使用鼠标的文本编辑。

先决条件

要学习本教程,您需要对命令行有基本的认识。

您应该了解什么是文件和目录,并且能够使用自己的帐户登录到类UNIX操作系统。

系统要求

在任何运行类UNIX操作系统的计算机上拥有您自己的帐户,这是完成本教程所需的要求。

类UNIX操作系统包括IBM?

AIX?

操作系统、Linux?

、BerkeleySoftwareDistribution(BSD)、MacOS?

X(使用终端来访问命令行),以及许多其他的操作系统。

vi简介

vi文本编辑器使用了两种主要的模式:

命令模式和插入模式。

本教程的第一部分将重点关注于导航文件,这个任务可以在命令模式中完成。

当您处于命令模式中时,普通的键盘操作用来执行命令,而不是创建文本。

当您进入到插入模式,可以使用键盘输入文本,例如在命令行中。

要退出命令模式,可以按Esc键。

vi中的命令有些是单键命令,有些是使用Shift或Ctrl或按键序列的命令。

在使用引用一个大写字母的命令时,您应该使用Shift键加上这个字母。

在使用引用两个字母或符号的命令时,您应该按顺序按下这些键,而不是同时按下。

要开始练习,首先您将在命令行中使用vi命令加上新文件的名称,以创建一个空白文件。

在本教程中,您在vi中从头开始建立了一个文档,然后学习使用有用的vi命令对该文档进行编辑。

在完成本教程之后,您将了解所有主要的vi命令,这些命令可以用来完成日常的编辑任务,以及一些功能强大的命令,您可以在适当的时候使用它们。

在学习本教程的过程中,随时可以使用部分中来自CalTech的参考手册。

登录到您最喜欢的类UNIX操作系统,然后使用vi打开一个新的文件(请参见)。

图1.使用vi打开一个新的文件

vi打开了一个名为的新文件(请参见)。

您马上将看到奇怪的地方:

文本编辑器最左边的一栏中填满了波浪符号。

不要担心,这是vi表示文档中未定义的部分的方式。

换句话说,因为该文件没有任何内容,所以这些行并不存在。

图2.vi中的空白文件

在开始进行任何操作之前,您应该了解如何保存文件以及如何编辑文件。

要输入这些类型的命令,可以按冒号(:

)键加上描述所需操作的字母序列。

要保存新的文件,可以按:

键、w键,然后按Enter键。

要退出vi,可以按:

键、q键,然后按Enter键。

现在,重新在命令行中打开vi。

如果您希望退出vi而不保存所做的更改,那么它会发出警告并提示您按感叹号(!

)以确认您的操作。

如果您希望忽略系统警告,可以在按键序列的后面追加一个感叹号,退出vi的按键序列是:

key,qkey,!

key,Enterkey

您可以将命令组合使用,如wq,表示保存文件并退出vi。

您需要完成的第一项任务是插入一些文本,以便能够学习如何编辑和操作文件。

在缺省情况下,进入vi后处于命令模式。

所以,如果您这时开始输入,那么可能会对得到的结果感到困惑。

稍后将对每种模式进行介绍,现在请按i键以进入到插入模式,然后输入一些文本行内容,这与在普通文本编辑器中的操作相同。

在完成输入后,按Esc键返回到命令模式。

请参见图和。

图3.当您进入到插入模式时,编辑器中最下面的一行将会说明这一点

图4.在示例文档中输入一些内容,以便可以对其进行操作

在按了Esc键之后,光标仍然位于输入的最后一个字符处,并且返回到了命令模式。

下一部分将向您介绍如何导航文件。

在vi中进行导航

在命令模式中,您的键盘变成了与界面的交互工具,而不是文本输入工具。

vi可以让那些需要使用所有常用命令的用户将手保持在标准键位(a-s-d-f和j-k-l-;)上,并延伸到附近的字母。

首先要学习的基本操作是移动光标。

大多数最新版本的vi允许您使用键盘上的箭头键,但是高级的vi用户更喜欢使用手指易于触及的按键h-j-k-l:

h和l分别表示向左和向右,这是非常直观的,因为将它们绑定到了四个方向键中最左边和最右边的按键上。

k向上移动光标。

j向下移动光标。

您将很快地记住这些按键。

要将光标移动到您所创建的包含三行内容的文件中的第一行,可以按两次k键。

光标现在位于第一行的末尾。

继续进行操作,并使用h-j-k-l将光标移动到文件中的其他位置,然后再次让它返回到第一行的末尾。

请参见。

图5.使用方向键h-j-k-l让光标返回到文件的第一行

使用快捷方式移动光标

在一行中移动

现在您的光标已经位于第一行的末尾,您可能希望将它移动到该行的开头,但却不希望反复地按h键以使光标移动到那里。

在命令模式中,vi具有一些基于键盘的快捷方式,它们允许您快速地移动到文件中的各个位置,与您将手移动到鼠标并指向文件中的某个位置,或使用箭头键一次移动一个位置相比,这种方式的速度更快。

这些快捷方式中的第一个是0:

要移动到一行的开头,可以按0,您的光标将跳转到该位置。

要移动到一行的末尾,可以按$。

继续练习并尝试这种方法。

现在,您可以一次移动一个字符。

您也可以将光标移动到每一行的开头和末尾,但是这两种操作在移动粒度方面相差很大。

另一种选择是一次移动一个单词。

您可以使用w和b键来完成这项任务:

按w键将向前移动一个单词。

按b键将向后移动一个单词。

您可以尝试这种方法,先将光标移动到第一行的开头(按0),然后按三次w键将光标移动到单词test的开头。

接下来,按两次b键以返回到单词is。

您可能注意到了,w键和b键将光标定位于每个单词的开头。

您还可以使用e键向前移动光标,导航到单词的末尾,或按g键。

按g向后移动。

请参见。

图6.使用w和b键逐个单词地移动光标,这是一种快速导航到拼写错误或需要更改的单词的好方法

从一行移动到另一行

现在,您可以在一行中快速地进行移动,但是如果正在处理一个较大的文件,还需要快速地从一行移动到另一行。

在vi中,有许多方法可以用来完成这项任务。

您可以使用向下或向上的移动命令(k和j),或者您可以使用page-up和page-down命令。

vi中的大多数命令不需要按Ctrl键,但是page-up和page-down这对命令是这条规则的例外:

按Ctrl-u向上翻一页。

按Ctrl-d向下翻一页。

要快速地导航到文件的开头或末尾,您可以按gg或G:

按gg可以将光标移动到文档中的第一行。

按G可以将光标移动到文档中的最后一行。

还可以在附加方法中指定行数,这些内容将在部分中讨论。

在vi中进行插入和编辑

在导航文档的过程中,您仍然处于命令模式,并且使用键盘作为界面交互工具来移动光标。

下一组命令模式按键提供了各种进入插入模式的方法,可以用来向文件中输入新的文本。

在本教程开始处输入初始文本时,您使用了最基本的方式进入到插入模式:

按i键,它表示insert。

按i可以在当前光标位置的前面进入到插入模式。

例如,如果您按gg导航到文件的开头,那么您可以按i键,这将使得您输入的任何文本都出现在当前行文本之前。

按gg、i,然后输入Iaminsertingnewtextwithi。

在完成输入后,按Esc键返回到命令模式。

请记住,在输入完新的文本之后,您必须返回到命令模式,否则无法对文档进行导航。

请参见。

图7.添加新文本的最简单的方法是使用i键进入到插入模式

添加新文本的另一个基本方法是使用a键,它表示append。

使用a键可以进入到插入模式,但它将在光标当前位置之后添加文本,而不是在光标当前位置之前。

要测试该命令,定位到文档的最后一行,按G和$键定位到该行的末尾。

然后按a键,输入Pressingaappendstext,并按Esc键返回到命令模式。

请参见。

图8.另一种插入文本的方法是使用a键,它表示append

现在您的光标位于文件最后一行的句号处。

如果您现在按i键,那么会将文本插入到句号之前。

如果您按a键,则会将文本插入到句号之后。

通过按I键(大写字母),您可以在一行的开头进行输入,即使您的光标位于该行的末尾。

与之类似,如果您按大写A键,那么您可以在该行的末尾输入文本,无论光标当前处于什么位置。

要测试这个命令,可以按I,输入Ithink,然后按Esc键。

请参见。

图9.要在一行的开头插入文本(无论光标当前处于什么位置),可以按I键

插入新文本的另一种有用的方法是,在进入到插入模式的同时,向您的文本文件添加新的一行。

与普通的文本插入一样,新的一行可以插入到光标位置之前或之后:

要在当前光标位置之前插入新的一行,可以按O键。

要在当前光标位置之后插入新的一行,可以按o键。

要尝试使用这个命令,可以按O,输入IinsertedthislinebypressingO,然后按Esc键以返回到命令模式。

请参见。

图10.要在光标之前插入新的文本行,可以按O键

您现在已经使用了一些主要的方法来插入新的文本。

回顾一下,这些键分别是a、i、A、I、o和O。

您能记住其中每个字母表示什么操作吗即使现在没有记住,请不要担心,在使用一段时间之后您就会记住了。

替换文本

既然已经向文件中输入了一些内容,您可能发现其中存在一些错误,或者可能希望更改其中的一些单词。

在学习如何删除文本之前,您应该学习如何替换文本。

为什么呢因为如果您学习了如何添加新的文本和删除旧的文本,您可能会养成使用删除命令的习惯,而在某些情况下replace命令可能更加有效。

与先删除一个单词,然后在该处添加一个新单词的方法相比,使用单步处理对单词进行替换更加便捷。

vi使用了两种重要的替换命令。

第一种是r键,它将删除光标位置的字符,并进入到插入模式以便输入单个替换的字符。

换句话说,您可以在按了r之后输入一个字符。

因此,vi自动地返回到命令模式(不需要按Esc键)。

要尝试该命令,可以使用k键和l键导航到第二行的末尾。

您的光标应该位于句号处。

要将句号更改为感叹号,可以按r键,然后按!

键。

请参见。

图11.要替换单个字符,可以按r键,然后输入文档中需要的字符

还有一种更有价值的replacement命令,可以按c键,然后按w键,它们组合在一起表示changeword。

这个命令删除当前的单词,并进入到插入模式,以便您可以立即输入替换的单词。

在这种情况下,输入完新的单词后,您需要按Esc键以通知vi完成了替换任务。

将光标向下移动到单词great,按c和w键,输入cool,然后按Esc键。

请参见。

图12.要替换单词,可以按c和w键,然后输入新的单词

如果您希望删除文本,而不是对其进行替换,那么您需要使用delete命令。

与vi中其他的操作一样,您有多种方法可供选择,这取决于您希望一次删除多少数据。

最基本的delete命令是x键,它一次删除一个字符。

要尝试使用该命令,可以返回到文本文件的开头,按Ctrl-u(page-up)键。

按$键定位到该行的末尾,然后按五次x键,以删除test.。

请参见。

删除文本

图13.要逐个地删除字符,可以使用x键

按五次x键可以完成这项任务,但是您可能希望vi能够为各种操作提供更简单的方法。

按d键和w键,您可以一次删除一个单词,这两个键组合在一起表示deleteword。

按三次b键,返回到单词This。

要删除这个单词,按d键和w键。

请参见。

图14.要删除单词,可以使用dw命令

现在第一行中包含一个半截的、不完整的句子。

要删除这一行中光标位置之后所有的内容,您可以使用d键加上$键,前面曾经介绍过,后者用来表示到一行末尾的操作。

按d键和$键,以便删除该行末尾的isa。

请参见。

图15.要删除光标到一行末尾的文本,可以使用d$

vi中最后一个常用的删除命令是delete-line命令,可以按两次d键来完成该操作。

它会删除一行文本,并将下面一行内容上移,这样一来,文档中就不会出现空行。

要删除文件中的第一行,可以按d键,然后再按一次该键。

请参见。

图16.要删除整行文本,可以按dd

谈到向上移动一行文本,您可以按J键以使用join命令,该命令将光标所在行的下面一行文本向上移动到光标所在行,而不会删除任何文本。

您的光标应该位于文档的新行(第一行)。

按J键将第二行上移至第一行。

请参见。

图17.要在vi中将两行文本合并在一起,可以按J键

更好地完成其他操作

现在,您应该已经掌握了在vi中创建、导航和编辑文本文件的一些基本技能。

在熟练掌握了这些基本的命令之后,您可以像在其他更加常规的文本编辑器中那样创建和编辑文件。

但是您的指令表中还缺少了一些内容。

本部分内容将向您介绍如何剪切、复制和粘贴。

您可以一次反复地执行命令、再次执行命令、搜索文档、并使用撤销(undo)和重做(redo)命令。

这个编辑器提供了其他文本编辑器中主要的功能,并且使用了快速访问的键盘命令方式。

剪切、复制和粘贴

在vi中删除文本的同时,会将这些文本自动地保存到缓冲区中(类似于Windows中的剪贴板)。

您已经了解了如何完成剪切命令,可以使用x、dd、dw和d$。

可以使用类似的命令来复制数据,而不删除该数据,在vi中,这种操作称为yank:

按两次y键,可以复制整行文本。

按y键和w键,可以复制一个单词。

按y键和$键,可以从当前光标位置开始复制该行文本。

只有了解了如何粘贴数据,对数据进行复制才能真正派上用场。

所以,在测试这些命令之前,您应该学习paste命令,可以使用p键来执行该命令。

与vi中其他的许多命令一样,小写的p键将数据粘贴到光标位置之后,而大写的P键将数据粘贴到光标位置之前。

要进行复制和粘贴,导航到文本文件的第一行,按两次y键。

然后,将光标向下移动到第二行,按一次p键。

该操作将第一行的文本复制到了第三行。

请参见。

图18.要复制一行文本,可以使用yy命令,并使用p命令进行粘贴

您可以尝试进行剪切和粘贴操作,将光标移动到第二行,按两次d键。

然后,按p键将该行文本粘贴到第二行的下面。

请参见。

图19.要剪切并粘贴一行文本,可以使用dd命令和p命令

在vi命令前面加上数字

此时,您可能为如何一次对多块数据执行这些命令而感到困惑。

例如,您可能经常需要复制和粘贴整个段落,而不是单独的行。

vi允许您在使用每个命令时,在它们的前面加上一个数字,这样就会多次执行该命令。

这种用法的功能非常强大,这也是使得vi能够成为专业用户手中优秀的编辑器的重要因素之一。

要尝试一次剪切并粘贴两行文本,可以导航到文件的第一行,按2键,按两次d键,然后按p键。

请参见。

图20.可以在dd命令和p命令前面加上2,一次剪切并粘贴两行文本

在使用paste命令多次复制一行文本的过程中,也可以使用相同的概念。

要完成这样的任务,可以先返回到第一行,使用yy命令复制该行文本,然后按10,再按p键。

现在将会增加10行关于vi的评价。

在继续进行其他操作之前,按5键,然后按两次d键以删除其中一些多余的行。

请参见。

图21.在p命令前面加上数字10,可以粘贴多行文本,然后在dd前面加上数字5,删除其中的几行文本

也可以尝试在导航命令的前面加上数字。

例如,按30键,然后按l键,这样可以将光标向右移动30个字符。

按7键,然后按G键,这样可以将光标移动到文件的第七行。

按5键,然后按w键,这样可以将光标移动到第五个单词。

在完成了这些实验之后,您可以继续进行下一步操作。

再次执行vi命令

vi中另一个非常有用的命令是.(句号)键。

.键可以再次执行最后一条命令,这个重要的特性可以让您快速地完成工作。

例如,将光标导航到第一行的单词cool,然后使用cw命令将这个单词更改为fast。

在输入完单词fast后,不要忘记按Esc键。

将光标向下移动到另一个cool单词,然后按.键将这个单词更改为fast。

您还可以移动到文件中最后两行的单词line,并使用.键替换它们。

请参见。

图22.使用句号键再次执行命令,这使得您可以快速地进行文档编辑

在vi中搜索文本

在vi中搜索文本也是非常快速且高效的。

要开始搜索一个字符串,可以按/键(斜杠键),再加上希望搜索的字符串,然后按Enter键。

要组合使用您的vi技能,可以按/键,输入think,按Enter,然后使用cw命令将这个单词更改为know。

在完成操作之后,不要忘记按Esc键。

如果您希望对第二行进行相同的操作,按n键以找到下一个think,然后按.键将该单词更改为know。

键可以像/键那样进行搜索,但它将反向而不是正向搜索文档。

在将think替换为know之后,按键加上单词fast以便进行反向搜索。

请参见图和。

图23.使用斜杠键加上希望搜索的字符串,可以搜索该字符串

图24.使用键加上希望搜索的字符串,可以反向搜索该字符串

vi中的撤销(undo)和重做(redo)

如果在操作中出现了错误,vi为您提供了撤销和重做机制,以确保可以将文档恢复到正确的状态。

在命令模式中,按u键可以执行撤销命令,按Ctrl-r可以执行重做命令。

可以尝试撤销和重做操作,如下所示(请参见):

1.定位到文本文件的第三行,并删除一些行。

2.按3键和G键定位到第三行。

3.按2键和dd命令以删除两行文本。

4.糟糕!

不应该进行删除操作,并且您希望恢复这两行文本。

要完成这个任务,可以按u键以撤销上一个命令。

5.如果您又改变了主意,想要删除这两行文本,可以按Ctrl-r以重新执行该命令。

图25.要撤销一个命令,可以使用u键;要重新执行一个命令,可以按Ctrl-r

总结

最后,让我们看看最后的一个命令序列,以便将您所学的一些命令组合在一起使用(请参见):

1.要定位到文档的开头,按两次g键。

2.要删除文档中的所有内容(因为其中的内容少于100行),可以输入100加上dd命令。

3.按i键进入到插入模式。

4.输入Iamdonewiththistutorial!

5.按Esc键。

6.按两次y键,输入100,然后按p键。

您现在告诉了计算机100次,已经完成了本教程的学习!

很好,现在可以休息一会儿,并喝杯咖啡了。

图26.完成了本教程的学习

在学习完本教程之后,您应该具备了使用vi创建和编辑文件的知识。

对本教程中列出的命令进行实验,开始使用vi作为您日常的文本编辑器以便练习使用这些命令。

开始的时候,速度可能会有所降低,但是很快您将记住这些命令,并了解何时何处该使用它们,vi可以显着地提高您的工作效率。

本系列中后续的教程将介绍Shell的诀窍与技巧。

同时,您应该不断地使用命令行并练习vi,您将很快会成为一名专业的UNIX用户!

参考资料

学习

您可以参阅本文在developerWorks全球站点上的。

查阅本系列中其他的部分。

研究这个参考手册,并在学习本教程的过程中将其放在手边,以备查阅。

本文由BillJoy编写,他是原始版本的vi的创作者,这篇文章中包含vi命令完整的指南。

从这个站点可以了解更多关于vi的内容。

vim是vi的最新版本,许多Linux和类UNIX操作系统中都包含它。

从vim的一位开发人员了解更多关于vi的内容。

这个站点提供了大量的版本信息以及到完整的vi参考手册的链接。

TheOpenGroup的站点向您介绍了更多有关UNIX和UNIX认证方面的内容。

了解更多关于Linux的内容,它是一种开放源码的类UNIX操作系统。

访问developerWorks的“AIXandUNIX”专区以拓展您的UNIX技能。

请访问“AIXandUNIX新手入门”页以了解有关AIX和UNIX的更多信息。

了解最新的developerWorks技术事件和网络广播。

AIX相关技术信息的协作环境。

收听

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1