快速业务通道

对话UNIX: 新改进的 Vim 编辑器

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

如果您曾和 IBM? AIX?(UNIX? 的一个版本)或 Linux? 打过交道,使用的很可能是 vi 编辑器.自 1976 年提出 vi 的概念开始,它已经成为编辑文件的主要工具.您可能会问:“有比 vi 功能更强大的编辑工具吗?”当然有,那就是 Vim,本文将详细介绍 Vim 增强功能,这些增强功能使 Vim 成为 UNIX 和 Linux 领域中广泛使用的编辑器.

vi 程序是一个功能强大的文本编辑器.Sun Microsystems 的共同创始人 William Joy 最初在 1976 年编写了针对 Berkeley Software Distribution(BSD)UNIX 早期版本的 vi 编辑器.据说 Bill 一个周末就编写了 vi,不过他说这纯属谣言.该程序以 UNIX 扩展行编辑器中的 visual 命令命名 — 简称为 ex.

vi 编辑器是一个功能很强的编辑器,它有几个许多人都没有发觉的功能.Vi 是一个模型编辑器,因此不同的设置会产生不同的结果.vi 中有三种不同的模式:命令、插入(或 输入)和行.在插入模式下操作时,文本被写入临时编辑文件;在一般模式下,相同的键击会触发嵌入在编辑器中的命令.要进入插入模式,按 I 键即可;要退出命令模式,按 Escape(我将在本文后面更详细地介绍行模式).

例如,在插入模式中,如果输入字符串 10dd,该字符串会写入临时文件,如图 1 所示.

图 1. 在插入模式下输入 dd

在插入模式下输入 dd

但是,如果处于命令模式,字符串 10dd 将从临时文件的当前光标所在位置开始删除 10 行,如图 2 所示.

图 2. 在命令模式下输入 dd

在命令模式下输入 dd

另一个例子是光标移动.在命令模式下,键 H、J、K 和 L 分别将光标向左、下、上和右移动,如图 3 所示.而在插入模式下,则显示这些字母.

图 3. vi 中的光标移动

vi 中的光标移动

通常,UNIX 用户使用 vi,或称为 Editor Macros(Emacs)的编辑器,它由 Richard Stallman 在 1976 年编写.但是许多人选择 vi,它是轻量级的,启动更快,占用的内存也更少.

Vim 是什么?

Vim,即改进的 Vi,是由 Bram Moolenaar 在 1991 年编写的 vi 的扩展版本.该版本最初是为 Amiga 计算机设计的,但 1992 年时在 UNIX 中迅速传播开来.与 vi 一样,Vim 基于命令模式和插入模式,它是一个文本用户界面(TUI)— 如图 4 所示.

Vim TUI

但是它提供了一种命名为 gVim 的图形用户界面(GUI)— 如图 5 所示.

图 5. Vim GUI

Vim GUI


Vim 命令

Vim 中的内部命令与 vi 编辑器中的内部命令类似.表 1 提供了 Vim 中的光标移动命令.

表 1. 用于移动光标的 Vim 命令

表 2 显示了用于删除文本的 Vim 命令.

表 2. 用于删除文本的 Vim 命令

表 3 提供了其他几个有用的 Vim 命令.

表 3. 常用 Vim 命令

行模式

尽管广泛使用的是命令和插入模式,但行模式同样重要,只是有时候没有被充分理解和使用.行模式进入行编辑器,使您可以在一行或多行上处理命令.考虑到 vi 以 ex 编辑器命名,它只适合进入 ex 编辑器的行模式.

要从命令模式进入行模式,输入冒号(:)即可.然后将光标移动到窗口左下角.继续输入时,所有文本都会出现在窗口底部的冒号后面.单击 Enter,开始计算和执行行模式命令.如果确定不执行在行模式下输入的行,则单击 Escape 返回到命令模式.

使用编辑器的行模式时,请记住两种命令样式.,在输入命令时,vi 或 Vim 按原样执行命令.如果执行的命令与修改数据有关,当前行就是目标.但是,使用第二种方法可以提供行数以处理指定的行.要输入行,请在冒号后面输入要处理的行数或行范围,并用逗号(,)分隔开始和结束范围.

例如,如果只处理行 23,那么命令以 :23 开始.如果要修改 2319 到 3819 之间的行,则输入 :2319,3819.要处理从行 45 开始到文件结尾之间的一个命令,需要将行的参数替

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号