好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

UNIX 新手指南,第 2 部分: vi 文本编辑器

级别: 中级

Tim McIntire (), 咨询师, 自由撰稿人 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?、Berkeley Software Distribution (BSD)、Mac OS? X(使用终端来访问命令行),以及许多其他的操作系统。

vi 简介

vi 文本编辑器使用了两种主要的模式:命令模式和插入模式。 本教程的第一部分将重点关注于导航文件,这个任务可以在命令模式中完成。 当您处于命令模式中时,普通的键盘操作用来执行命令,而不是创建文本。 当您进入到插入模式,可以使用键盘输入文本,例如在命令行中。 要退出命令模式,可以按 Esc 键。 vi 中的命令有些是单键命令,有些是使用 Shift 或 Ctrl 或按键序列的命令。 在使用引用一个大写字母的命令时,您应该使用 Shift 键加上这个字母。 在使用引用两个字母或符号的命令时,您应该按顺序按下这些键,而不是同时按下。

要开始练习,首先您将在命令行中使用 vi 命令加上新文件的名称,以创建一个空白文件。 在本教程中,您在 vi 中从头开始建立了一个文档,然后学习使用有用的 vi 命令对该文档进行编辑。 在完成本教程之后,您将了解所有主要的 vi 命令,这些命令可以用来完成日常的编辑任务,以及一些功能强大的命令,您可以在适当的时候使用它们。 在学习本教程的过程中,随时可以使用参考资料部分中来自 Cal Tech 的参考手册。

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

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

vi 打开了一个名为 tutorial.txt 的新文件(请参见图 2)。 您马上将看到奇怪的地方:文本编辑器最左边的一栏中填满了波浪符号。 不要担心,这是 vi 表示文档中未定义的部分的方式。 换句话说,因为该文件没有任何内容,所以这些行并不存在。

图 2. vi 中的空白文件

在开始进行任何操作之前,您应该了解如何保存文件以及如何编辑文件。 要输入这些类型的命令,可以按冒号 (:) 键加上描述所需操作的字母序列。 要保存新的文件,可以按 : 键、w 键,然后按 Enter 键。要退出 vi,可以按 : 键、q 键,然后按 Enter 键。 现在,重新在命令行中打开 vi。 如果您希望退出 vi 而不保存所做的更改,那么它会发出警告并提示您按感叹号 (!) 以确认您的操作。 如果您希望忽略系统警告,可以在按键序列的后面追加一个感叹号,退出 vi 的按键序列是:

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

您需要完成的第一项任务是插入一些文本,以便能够学习如何编辑和操作文件。 在缺省情况下,进入 vi 后处于命令模式。 所以,如果您这时开始输入,那么可能会对得到的结果感到困惑。 稍后将对每种模式进行介绍,现在请按 i 键以进入到插入模式,然后输入一些文本行内容,这与在普通文本编辑器中的操作相同。 在完成输入后,按 Esc 键返回到命令模式。 请参见图 3 和 4。

图 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。

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

使用快捷方式移动光标

在一行中移动

现在您的光标已经位于第一行的末尾,您可能希望将它移动到该行的开头,但却不希望反复地按 h 键以使光标移动到那里。 在命令模式中,vi 具有一些基于键盘的快捷方式,它们允许您快速地移动到文件中的各个位置,与您将手移动到鼠标并指向文件中的某个位置,或使用箭头键一次移动一个位置相比,这种方式的速度更快。 这些快捷方式中的第一个是 0:

? ?

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

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

现在,您可以一次移动一个字符。 您也可以将光标移动到每一行的开头和末尾,但是这两种操作在移动粒度方面相差很大。 另一种选择是一次移动一个单词。 您可以使用 w 和 b 键来完成这项任务:

? ?

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

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

您可能注意到了,w 键和 b 键将光标定位于每个单词的开头。 您还可以使用 e 键向前移动光标,导航到单词的末尾,或按 g 键。 按 g 向后移动。 请参见图 6。

图 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 命令前面加上数字部分中讨论。

在 vi 中进行插入和编辑

在导航文档的过程中,您仍然处于命令模式,并且使用键盘作为界面交互工具来移动光标。 下一组命令模式按键提供了各种进入插入模式的方法,可以用来向文件中输入新的文本。 在本教程开始处输入初始文本时,您使用了最基本的方式进入到插入模式:按 i 键,它表示 insert。 按 i 可以在当前光标位置的前面进入到插入模式。

例如,如果您按 gg 导航到文件的开头,那么您可以按 i 键,这将使得您输入的任何文本都出现在当前行文本之前。 按 gg、i,然后输入 I am inserting new text with i。 在完成输入后,按 Esc 键返回到命令模式。 请记住,在输入完新的文本之后,您必须返回到命令模式,否则无法对文档进行导航。 请参见图 7。

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

添加新文本的另一个基本方法是使用 a 键,它表示 append。 使用 a 键可以进入到插入模式,但它将在光标当前位置之后添加文本,而不是在光标当前位置之前。 要测试该命令,定位到文档的最后一行,按 G 和 $ 键定位到该行的末尾。 然后按 a 键,输入 Pressing a appends text,并按 Esc 键返回到命令模式。 请参见图 8。

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

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

UNIX新手指南,第2部分:vi文本编辑器级别:中级TimMcIntire(),咨询师,自由撰稿人2007年1月18日对于新用户来说,vi文本编辑器可能看起来不是很直观,但是不要误会,世界上许多最优秀的程序员仍然广泛地使用这种经历了30年之久的古老工具,之所以会这样,有一个很好的理由。vi文本编辑器将操
推荐度:
点击下载文档文档为doc格式
77iw66k1ek3ibqw7s1xb7s7tu43ow500tt6
领取福利

微信扫码领取福利

微信扫码分享