`
ghost138
  • 浏览: 45587 次
  • 性别: Icon_minigender_1
  • 来自: ...重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

无论在什么系统上,文本编辑器也许都算得上是最普通和最有用的工具了。一个文本编辑器是一个创建、修改文本和数据对象的程序。他和字处理程序和桌面出版程序的区别是他只处理 plain ASCII 文本,没有格式信息。后者更倾向于处理复杂的文档。一个典型的字处理软件都有图形化的用户界面 (GUI)和 "what-you-see-is-what-you-get" 的效果。

文本编辑器的一般用途是处理简单的 ASCII 文本、源程序、e-mail等等。因此,他们都对相应的处理对象有一定的扩展。例如格式化相应的程序语言 (C++, Lisp, HTML 等)。详细的例子我们将在后面介绍。

我们在这里将为您介绍 UNIX 世界中最常见的编辑器:vi 。您也会发现在这个世界上还有一种人狂热地喜欢 VI。

全屏幕编辑器 VS 行编辑器

全屏幕编辑器就是指用户工作的时候他可以在终端上看到他所处理的文件的全部或者部分。例如在一个25行的显示终端上,他可以看到文档中的24行。在 编辑的时候,你并非在处理硬盘上的实际文件,而是你的文件的一个拷贝。这个拷贝一般叫做缓存。所有对文件的增加、修改、删除操作都是对缓存的操作,只有当 你保存的时候,实际的文件才有改变。所以你一定听说过要经常保存你正处理的文件的建议。这个建议对于所有类似处理的程序都有用。

你可以想象屏幕是个在缓存中移动的视口。这个视口我们称为窗口。

相对而言,行编辑器则不会连续的显示你正处理的文件。他一次处理一行。因此他的界面很简单。自然而然,你会认为全屏幕编辑器的好处了。

但是,不要认为行编辑器简单的外表就一定缺乏强劲的处理能力。在行编辑器下,你能完成许多全屏幕编辑器很难完成的工作。

什么是 vi?

vi (一般,我们发音为 vee-eye ) 是一个几乎每个 UNIX 系统都具备的行编辑器。还有许多变种存在于许多其他的操作系统中。例如 Amiga、 Atari、Macintosh、MS-DOS、OS/2、Windows 3.1/95/NT。

viex的关系

vi 和行编辑器 ex很相近。(实际上他们是一个程序!) vi 是可视化 (visual)的 ex。也就是说,你可以用 ex 开始编辑一个文件。任何时候,你都可以调用可视化的 ex。 在 vi 中,你随时可以到 ex 环境中。在后面的文章中可以看到例子。

为什么对 vi 感兴趣?

许多计算机用户对于 PC 机上的字处理软件很熟悉。如果你曾经用过这样的软件,也许你会对 vi 很失望。他不是一个 "what-you-see-is-what-you-get" 或 WYSIWYG 的字处理软件。然而,这样的字处理软件在典型的 UNIX 系统上是不多见的。vi 在几乎所有的 UNIX 系统下都有。

缺乏 GUI 也许对于初学者是个障碍,但是许多高级用户认为高效率的工具是命令行的用户界面。是的,当这些键盘命令成为你的本能的反应后,生产效率将远远超越其他的编 辑器。实际上对命令行的用户界面的误解来自:人们总认为自己不可能记忆那么多命令。实际上,对于命令已经是手指的舞蹈而非记忆的功劳了。

进入和退出 vi

用一个新程序,首先你要知道的是如何进入和退出这个程序。最简单的进入 vi 的方式是输入程序的名字和你想编辑的文件的名字。如果你没有提供文件名,vi 将开一个空的屏幕,除了左边一列有些怪符号。下面就是你将看到的屏幕:

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
Empty buffer

也许最下面的一行什么东西也没有——这取决于你使用什么版本的 UNIX 系统。在这里,他显示的是 "Empty buffer," 屏幕上弯弯曲曲的符号表明那行是空的,最下面的一行显示信息或者输入的命令。在后面的章节中我们将称呼他为命令行。

如果你输入了文件名,那么屏幕上将充满了你的文件。而文件名和行数将显示在最后一行。就象这样:

    If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"art1" 8 lines, 576 characters

你应该知道的另外一件事是你该知道如何退出他。相对于你想如何对待你的缓冲,有几种办法可以达到目的。所有这些命令你必须在命令模式下输入(以后详细讲解)。为了确认你是在命令模式下,按下 ESC 直到你听到喇叭声。

输入命令 ZZ 将保存文件然后退出。另外的方式是在 ex 模式下的。为了进入 ex 模式,输入冒号,屏幕上最下面一行将显示冒号,光标在冒号右边闪烁,等待你的命令。

q 键将 "退出" 文件。不过前提是在你上次存盘后你没有修改文件。如果你对文件有过修改,你将不能退出,并得到下面的警告信息:No write since last change (use ! to override) 。命令 wq 可以帮你的忙,他保存文件然后退出。或者你就用 q! 来放弃你做的修改。

表 3.1 总结了迄今为止我们讲的命令。

表 3.1. 退出命令

Keystrokes Result
ZZ 保存文件,退出
:wq 保存文件,退出(和 ZZ 类似)
:q 退出。防止没有保存就退出。
:q! 退出。无论保存与否,都退出。


正式开始

vi 的模式

vi 是在很久以前就写的程序。在那个时候,键盘上没有现在熟悉的那么多功能键。所以,vi 设计成通过输入字符和 ESC 来控制输入和修改文本。

可能这对于一些人来说是个遗憾,但是你会发现你不需要改变手在键盘上的位置就可以完成所有的功能。结果是你的输入将快速起来。

为了完成交互的全屏幕编辑工作, vi 有三种模式。插入模式 (insert) 用于输入文本。在插入模式下,你输入的任何字符都将显示在屏幕并存于文件。命令 (command) 模式用于大多数编辑功能。在命令模式下,所有的输入都将产生一定的响应而不是 直接到文本中,例如移动光标、删除一块文本、拷贝文本等。第三个模式是执行另 外的功能,例如查找、全局替换、处理多个文件等。这种模式是基于 ex 编辑器的。

启动 vi

vi 启动后,默认的模式是命令模式。按照下面的步骤试一试:输入程序名称启动 vi

$ vi

你将看到类似下面的东西:

~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
Empty buffer

i--插入

现在我们输入 "i" 进入插入模式。字符 "i" 将不会回显。此后你输入的任何东西都将显示在缓存中。现在我们来输入一段文字。 例子中的话来自英文版的孙子兵法。注意光标的位置在例子中是个下划 线。

    If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

Esc--Cancel

当你输入完了,按下 Esc 键返回到命令模式。 (如果你已经处于命令模式下,按 Esc 时会听到喇叭的声音。) Esc 可以撤消未完成的命令和终止插入模式。按 Esc 后,光标将停留在你最后输入的字符的下面。

很不幸,没有一个明显的标志表明你现在处于什么模式下。但是有简单的方 法来告诉你现在你所处的模式。如果你按下键,相应的字符出现在屏幕上,那么 你是在插入模式下,否则是命令模式下。如果你不能确定你现在所处的模式,那么 按 Esc 两次以听到喇叭声来确信你在命令模式下。

移动光标和简单的编辑

是看一看基本的移动光标命令的时候了。训练训练你的手指,让他们以后自动 的执行你所想的命令吧。

最重要的移动命令

让我们来看看有多少影响光标移动的命令。

hh--光标左移

首先,按 5 下 h 让光标左移动 5 个 (如果你看到 h 跑到屏幕上了的话,一定是你忘记了按 Esc )。光标现在应该在 "plans" 中的 "p" 下面 (看下面的例子):

    If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

kk--光标上移

现在我们来按 5 次 k 让光标上移 5 行。也许你该认为应该有快捷方式了。好,现在就有个简单的方法:在你要采取的 行动前加上数字。按下 5k 你可以和按 5 下 k 有相同的结 果了。光标现在该在 "he" 的"e"下了。

    If wise, a commander is able to recognize changing circumstances and to
act expediently. If sincere, his men will have no doubt of the certainty of
rewards and punishments. If humane, he loves mankind, sympathizes with others,
and appreciates their industry and toil. If courageous, he gains victory by
seizing opportunity without hesitation. If strict, his troops are disciplined
because they are in awe of him and are afraid of punishment.
Shen Pao-hsu ... said: 'If a general is not courageous he will be unable
to conquer doubts or to create great plans.'
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

在使用这些功能的时候有些限制的。例如使用 h 或 l 移动光标超过了一行文字的头或尾,光标将停留在头或尾部,喇叭鸣叫提醒 你。

还有其他的类似 h 和 k 的吗?看一看表3.2。最好的熟悉他们 的的方法是多用他们。

表 3.2. 常见的方向键

命令 移动
h 左一个字符
j 下一行
k 上一行
l 右一个字符
w, W 前一个单词 (W 忽略标点)
b, B 后一个单词 (B 忽略标点)
$ 到行尾
^ 到行首第一个非空字符
0 行首
G 到缓冲首
nG 到第 n

大小写的命令是有一些区别的。小写字母一般以标点区分 "words.",而大写则忽略他们。

最重要的编辑程序

让我们看看最简单也是最常用的编辑过程:

修改 没有人不犯错误。所以迟早 你会碰到修改你输入的文本的时候。实际上花在字处理上的大多数时间是 修改而不是输入新的东西。因此,你要知道如何方便地修改就很重要。

x--删除一个字符 删除文字的最简单的方式是用 x。这个命令的结果是光标所处 的字符的消失,后面的文字左移动。如果你删除的字符是一行最后的一个字符, 那么光标将向左移动一个,这样光标就不会停留在不存在的字符的下面了。假如 没有任何文字了,喇叭就叫。

d--删除对象 这个命令的右边还要有一定的文字对象。文字对象就是一块文字。他右边接的 就是在控制光标移动的那些字符。例如 w 表示向前一个单词,那么 dw 将删除下一个单词。5w 表示前进 5 个单词,那么 d5w 将删除他们。

dd--删除一行 最常用的 d 系列命令之一。和前面一样, 5dd 将删除 5 行

D--整个删除 大写形式的 D 用来删除从光标到行尾。和 d$ 一样效果。

u--恢复 要后悔吗?他不仅仅撤消删除,还撤消你所有的编辑工作。

.--重复 重复编辑工作。

分享到:
评论

相关推荐

    IBM vi 入门 巧表单方法

    vi 入门 -- 巧表单方法 技术级别: 初级 Robbins, Daniel 2001年2月8日 这篇免费、dW 独有的教程阐述了如何使用功能强大的可视化编辑器 vi。它使用一种快速“巧表单”方法,目的是使您不用花费大量时间,就...

    unix下的vi入门命令集锦

    【Unix下的vi入门命令集锦】是针对初学者整理的一份详细教程,涵盖了在Unix环境中使用vi编辑器的基础操作。vi是Unix系统中广泛使用的文本编辑器,它分为指令模式和输入模式,提供了丰富的编辑功能。 1. **wc命令**...

    VI入门视频

    **VI入门视频** VI(Vim Improved)是一个强大的文本编辑器,在Linux和Unix系统中广泛使用,也适用于其他操作系统。这个“VI入门视频”提供了一个简短而全面的教程,帮助初学者快速掌握VI的基本操作,并能将其应用...

    Vi入门 txt Linux

    ### Vi编辑器入门指南 Vi(Visual Editor)是一款在Unix及类Unix系统中广泛使用的文本编辑器,也是Linux系统中最常见的编辑工具之一。对于初学者而言,掌握Vi的基本操作是进行系统管理和编程不可或缺的技能。 ####...

    vi入门级学习 扫盲行动

    vi编辑器是Unix和Linux系统中的标准文本编辑器,其功能强大且历史悠久。vi有三种主要的操作模式:命令模式、插入模式和底行模式。在命令模式中,用户可以进行光标移动、文本删除、复制和粘贴等操作;插入模式则允许...

    VI入门教程

    VI的入门教程 还不错 可以先用来熟悉 20字你妹啊

    linux vi入门

    linux下编辑软件vi的入门好教材,不要错过哦~

    vi命令入门详解.txt

    ### Vi命令入门详解 #### Vi简介 Vi,全称为“Visual interface”,是在Linux系统中极为重要的文本编辑器,类似于DOS系统下的Edit程序。Vi具备强大的文本操作能力,包括但不限于输出、删除、查找、替换、块操作等...

    UNIX正文编辑程序VI命令简介

    2.0 - vi入门 2.1 - 有什么游戏帮助我们学习vi吗? 2.2 - 命令模式和插入模式有什么区别? 2.3 - 等等,我的键盘没有键,我该怎么办? 2.4 - 那些~s是什么东西? 2.5 - 我无法习惯用 hjkl, 你有什么建议吗? 2.6 - 我...

    linux vi视频课程

    linux vi 入门级视频教程,初学者的挚爱!

    UNIX vi编辑器完全使用手册

    #### 二、Vi入门 ##### (一)进入vi - **启动vi**: 在系统提示符下输入`vi <文件名>`即可启动vi编辑器。如果没有指定文件名或者文件不存在,vi会创建一个新文件。 - **显示状态**: 进入vi后,屏幕左方会出现波浪...

    unix 系统vi编辑大全书

    1. **Vi入门**:介绍如何启动和退出Vi,以及基本的光标移动命令,如`h`(向左)、`j`(向下)、`k`(向上)、`l`(向右)。 2. **编辑操作**:讲解如何插入文本、替换文本、删除字符和行,以及撤销和重做操作。 3....

    vi 编辑器使用手册

    #### 二、Vi入门 ##### (一)进入vi - **启动方式**:在命令行中输入`vi <文件名>`来打开或创建一个文件。 - **状态指示**:进入`vi`后,屏幕左方会出现波浪线,表示当前行为空。 ##### (二)两种模式 - **...

    vi编辑器的使用

    #### 二、Vi入门 - **进入vi编辑器**:在Unix命令行界面中输入`vi <文件名>`即可打开vi编辑器。如果文件不存在,vi将会创建一个新文件供用户编辑。 - **vi的两种模式**:vi有两种主要的工作模式——指令模式和输入...

    Unix vi编辑器完全使用手册.doc

    2. **Vi入门** - 进入Vi:在命令提示符下输入`vi <档案名称>`,可以打开已存在的文件或创建新文件。 - **指令模式**:在此模式下,用户输入的键会被解析为命令。例如,`i`键用于进入输入模式,`a`在当前光标后插入...

    Vi编辑器完全使用手册

    #### 二、Vi入门 - **启动Vi**:通过命令`vi <文件名>`启动Vi编辑器。如果文件不存在,则创建新文件;如果文件已存在,则加载该文件。 - **两种模式**:Vi有指令模式和输入模式两种主要模式。 - **指令模式**:在此...

    vi 编辑器使用指南 unix linux

    #### 二、Vi入门 ##### (一) 进入vi 要进入vi编辑器,可以在命令行提示符下输入`vi <文件名>`。如果指定的文件存在,vi将会加载该文件;如果文件不存在或者未指定文件名,则会创建一个新的文件。进入vi编辑器后,...

    wxh Unix Vi编辑器完全使用手册.doc

    #### 二、Vi入门 ##### (一)进入vi 启动vi编辑器非常简单,只需在命令行输入`vi <文件名>`,vi编辑器会自动加载指定文件进行编辑,若文件不存在,vi则会创建一个新的文件供用户编辑。成功进入vi后,屏幕左侧会...

    vi从入门到精通

    ### VI编辑器从入门到精通 #### 一、VI编辑器简介 VI(Visual Editor)是一种功能强大的文本编辑器,广泛应用于各种Unix系统及其衍生版本(如Linux等)。与现代带有图形用户界面(GUI)的编辑器不同,VI编辑器在...

Global site tag (gtag.js) - Google Analytics