Linux 使用vi简单的编辑文本详解

vi文本编辑器概述

与Unix相同,Linux本质上是一个文本驱动(text-driven)的操作系统。文本文 件就是全部由ASCII码字符及某种语言的编码字符构成的文件,不含有任何样式和格式信息。文本文 件可以被任何文本编辑器解释而不会出现乱码,还可以被所有程序操作和使用。在Linux系统中,文 本文件被广泛地用作系统配置文件和系统工具软件的操作对象。这使得用户可以在文本方式下完成所有的工作,如编写程序和命令脚本、读/写电子邮件、配置和管理系统等。而完成所有这些工作的基 本工具就是文本编辑器。因此,Linux的用户应当熟悉至少一种文本编辑器

vi文本编辑器介绍

Linux下的文本编辑器有ex、sed、vi和emacs等很多种。其中,vi是最基本的文本编辑工具。vi(visual)诞生于1978年,由柏克莱大学的Bill Joy编写。从其诞生至今,vi始终是所有Unix/Linux系统上必配的编辑器,甚至在DOS、Windows、Macintosh、OS/2乃至IBM大型机S/390系 统上都能见到vi的某个版本。目前Linux系统上流行的版本是vi增强版vim(vi improved)。vim是一个开放源代码软件,它在vi的基础上增强了功能,也更容易使用。现在许多Linux发行版中的vi就是vim。本书中所说的vi也兼指vim,但有一些选项可能只有vim支持。vi是一个全屏幕文本编辑器,具有文本编辑所需的所有功能。vi以高效和快捷著称,这是vi能够在编辑器领域中保持几十年领先地位的原因。以下介绍vi的几个突出特点。

  • 编辑功能强大

vi的编辑功能十分强大,除通常的编辑功能外,vi还支持一些高级编辑特性,如正则表达式、宏和命令脚本。利用这些特性可以完成非常复杂的编辑任务,实现编辑的智能化和自动化。另一方面,vi的功能又十分专注,它只是一个编辑器,没有其他功能。Linux系统 提供了许多专门用途的工具,如排版、排序、流过滤、E-mail、编译等软件。vi可以和这些工具软件协同工作,从而实现几乎所有的文件加工处理任务。用一些小而精悍、功能专一的工具结合起来完成复杂的处理功能,这正是Unix的设计哲学。

  • 适用于各种版本的Unix/Linux系统

vi是Unix/Linux系统的标准文本编辑器,几乎每一台Unix/Linux系统上都会有vi,这是其他编辑器无法相比的。

  • 适用于各种类型 的终端

vi得以广泛应用的原因之一是它对终端设备的广泛适应性。不管是只有打字机键盘加Esc 键的简单终端,还是受通信限制的远程终端,或是配有完备的功能键和鼠标的现代化终端,都可以很好地支持vi完成文本编辑工作。

  • 使用灵活快捷

广泛适应性带来的问题是繁多的命令。对于同 一项编辑操作,vi提供了许多不同的命令。vi的命令都很简练,往往是单个字符或少数几个字符的组合。对初学者来说,使用这些命令并不方便,甚至过于复杂。但对于熟练的用户来说,更多的选择意味着更大的自由,简单的命令意味着更少的击键次数。正因为如此,vi被看做是Linux开发人员和系 统管理员的编辑利器。初学者经过一段时间的使用,也会逐渐习惯vi的操作方式,并形成自己特有的操作风格。

vi的工作模式

vi是一个多模式的软件,它有三种工作模式。在不同的工作模式下,它对输入的内容有不同的解释。

  • 命令模式(Command mode)

在命令模式下,输入的任何字符都作为命令来解释 执行,屏幕上不显示输入内容。命令模式用于完成各种文本修改工作。

  • 输入模式(Insert mode)

在输入模式下,输入的任何字符都将作为文件的内容被保存,并显示在屏幕上。输入模式用于完成文本录入工作。

  • 末行模式(Last line mode)

末行模式也称为ex转义模式。在末行模式下 ,光标停留在屏幕的最末行,在此接收输入的命令并执行。末行模式用于执行一些全局性操作,如文件操作、参数设置、查找与替换、拷贝与粘贴、执行Shell命令等。

在文本编辑过程中,用户可 以控制vi在这三种工作模式之间进行切换,完成各种编辑工作。三种模式之间的转换关系如图所示。

vi

原始图下载位置: Linux vi三种模式之间的转换关系

vi的启动与退出

在Shell下输入vi命令后,便进入全屏幕编辑环境,命令格式是:vi [文件名]

vi的启动过程是:先建立一个编辑缓冲区,若指定了文件且该文件已存在,则将其内容读到编辑缓冲区中;若指定的文件不存在,则建立此文件。然后将光标定位在第1行第1列的位置上。

vi启动后首先进入命令模式。此时,用户可以使用vi的编辑命令进行文本的输入和修改。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

启航学途

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值