`
xugming
  • 浏览: 96349 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

第一章 介绍

阅读更多
Hacking Vim 中文翻译 -- by Alec alec.ming@gmail.com

第一章 介绍

Vim(Vi IMproved)第一版是在1991年11月由Bram Moolenaar在Amiga平台上作为Unix下vi编辑器的克隆版而编写的.

Unix平台下的Vim第一版在一年后被立即发行了, 它也成为了vi的一个替代品.

Vim是自由软件, 并且它也能成了vi功能的一个超集, 使得它在自由软件社区发展得相当迅速. 很快Linux的发行版开始用Vim替换vi. 即使那些使用vi的用户(他们执行vi命令)也是开开的Vim编辑器(vi命令已经简单地以连接的形式替换成了vim命令, 这也使得很多人误以为vi和vim是同一个程序).

在90年代后期, Vim已经填补了vi在和Emacs的所谓的编辑器战争(editor-war)中所显现的不足. Bram实现许多Emacs社区认为比vi优秀的功能, 但是他并没有偏离vi从最开始的一直关注的开始宗旨.(意译,不知是否正确.原文:he did it without ever
neglecting the main focus areas that the vi editor had had, right from the beginning.)

现在Vim作为一个功能强大, 高可配置性的编辑器而被许多人喜爱. 它支持了超过200多种不同编程语言的语法高亮显示, 支持越来越多的语言的自动完成功能, 代码折叠, 撤销/重做, 多缓存/窗口/标签, 和很多其他的功能.

Vi, Vim, 和他们的朋友们

Vim只是Bill Joy在1976年开发的vi编辑器的衍生物之一. 有一些衍生编辑器的功能和vi的很接近, 但有些就加入了很多的新牲征. Vim就属于加入新牲的版本. 下一节, 我们将介绍一些常见的vi衍生版, 并且简要的描述每个版本的不同的特征.

vi

Vi是Vim家庭树中的根. 它是在1976年由Bill Joy为BSD的一个早期创建的. 这个编辑器是一个当时最普遍的ex编辑器的扩展. 而ex又是Unix编辑器ed的扩展. vi这个名字就是Visual in ex(可视化ex)的缩写. 故名思意, vi当时仅是一个用可视化模式启动ex编辑器的一个命令.

vi当时是第一个引入模式化概念的编辑器. 意思是说这个编辑器对应不同的任务有不同的模式--一个是专门编辑文本的模式, 一个是用来选择文本的模式, 还有一个是用来执行命令的模式.

这个模式化概念是vi的主要特性之一, 许多的vi好好者正是因为这一特性而喜欢vi的, 不过这一特性也成为了一些人不喜欢vi的原因.

自vi的第一版以来, 没有多少特性进行改变, 但是它始终还是Unix社区中使用人数最多的编辑器之一. 这主要是因为vi被认为是Unix完成Single Unix Specification(SUS)的必备应用程序, 因此vi也可以说自己就是一个Unix.

Vim

Vim编辑器是vi家族的掌上明珠(golden child). 自从Bram Moolenaar在1991年11月发布了vim的第一个版本, Vim已经发展成为功能最强大的编辑器之一.

Vim的第一个版本就是Elvis编辑器一样, 是以Stevie编辑器的源代码为基础的. 不过, Bram开发Vim只是为Amiga平台(那时家用电脑开始兴起, Amiga成为使用最多的平台之一). 那时的Vim是Vi-IMitation的缩写, 意味着Vim只是完成了vi的功能, 并且做得更好.

一年以后, 也就是1992年, Bram发布了他的Vim的Unix版本. 这一举措使得Vim不再简单是vi在更一个平台上的衍生版本, 而变成了一个竞争者. Vim的发展非常好, 迅速得Vim摇拥有大量的vi所没有的功能. 因此, Vim的缩写也由Vi-IMitation变成了Vi-Improved.

在之后的几年内, Vim增加了很多vi用户梦寐以求的许多功能. 这使得更多的用户从vi转向Vim将其作为首选编辑器.

在1998年, Vim的第五版发布, 正是这一版本引入了现在使用最多的一个功能--脚本.

现在, 用户可以为Vim编写自己的脚本, 并以此来扩充Vim的功能. 这对Vim来说是一个非常强大的功能, 因为可以通过简单的编码, 然后经过编辑器的再编译就可以增加新的功能了.

Vim很多新的功能都是在最现的十年内加上去的, 并且其中的大部多都是其他和编辑器和vi其他衍生版本所没有的.

这里仅列出一些Vim的特性, 因为完整的Vim特性实在太长了.
   
  • 在多缓存区, 多窗口, 多标签中编辑多个文件
  •     高级的脚本语言
  •     支持Perl和Python脚本语言
  •     超过200个编程语言的语法高亮显示功能
  •     无限撤销/重做
  •     自动根据上下文完成单词和函数
  •     高级正则表达式配置功能
  •     高度集成大部分的编译器, 解释器和调试器
  •     有超过1500个在线Vim脚本自由下载

Vim在相当多的平台上都可以使用, 如Unix, Linux, MS Dos, MS Windows, AmigaOS, Atari MiNT, OS/2, OS/390, MacOS, OpenVMS, RISC OS 以及QNX.
       
[剩下的章节是介绍stevie, elvis, nvi, vile的, 这里暂且不译.]
分享到:
评论

相关推荐

    离散数学第一章介绍

    离散数学第一章 介绍 交大版课件资源 离散数学 第一章

    《通信原理》第一章PPt

    通信原理第一章PPt,重点介绍通信原理有关知识和要点

    第一章流程模拟软件介绍PPT课件

    第一章流程模拟软件介绍,第一章流程模拟软件介绍课件,第一章流程模拟软件介绍PPT

    protel教学经典PPT教程

    第一章 介绍、文件 第二章 设计组管理 第三章 电路原理图设计基础 第四章 原理图设计 第五章元件库编辑 第六章 多张电路图设计 第八章 印刷电路板基础 第九章 PCB编辑器 第十章制作印刷电路板 第十一章绘图工具介绍 ...

    第一章 信号与系统的概念

    西电出版的陈生潭老师的信号与系统教材对应的课件,第一章介绍信号与系统的概念

    图论与代数结构教案和习题解答

    前六章是图论,第一章介绍图的基本概念及其代数表示方法,第二章至第六章分别详细讨论了道路与回路、树、平面图与图的着色、匹配与网络流、图的连贯性等图的主要内容,并且将它们与计算机的应用紧密结合,分...

    单片机基础 第三版 课后习题答案

    第一章介绍了单片机的基本概念和结构,包括单片机的定义、分类、组成部分和工作原理。第二章介绍了单片机的指令系统,包括指令格式、指令类型和指令执行过程。第三章介绍了单片机的存储器组织,包括存储器类型、...

    计算机图形学 第一章

    第一章 关于计算机图形学的简单介绍,大致讲解了这样一本书的大概

    C#的期末大作业,前端使用C# winform窗体开发,后端使用C#,数据库使用Sql Server

    第一章 介绍 第二章 登录窗口 1.1 组件 1.2 事件 第三章 教师窗口 3.1 功能介绍 3.1.1 点名 3.1.2 查询点名记录:搜索选中科目的点名记录 第四章 管理员窗口 4.1 功能介绍 4.1.1 添加学生 4.1.2 删除、修改、查询...

    C++ Builder 程序设计实用教程

    第一章介绍了利用 CBuilder 5 编制应用程序的一些基础知识, 以及如何利用 CBuilder 5 编制简单的 Windows应用程序; 第二章介绍了 CBuilder 5 中基本的用途和使用方法, 熟练地利用 ActiveX控件开发应用程序 是每一...

    电能质量分析方法 [刘军成著] 2011年版

    全书共分九章:第一章介绍了电能质量问题及其发展动态;第二章详细介绍了非线性负荷及其用电特性;第三章介绍了分析电能质量干扰响应特性的一种工程方法——等效冲击电流分析法;第四章介绍了贯穿源特性与系统响应...

    MyEclipse 6 Java 开发中文教程.pdf

    第一章介绍常见的Java软件以及数据库和MyEclipse开发工具的下载和安装方法; 第二章则带领读者通过手工和开发工具对比的方式开发简单的应用; 第三章对Eclipse 开发环境进行介绍;第四章则介绍如何用 MyEclipse 管理...

    信息安全技术介绍(第一章)

    什么是“计算机安全”?广义地讲,安全是指防止其他人利用、借助你的计算机或外围设备,做你...然而,这一定义却引出了我们不得不面临的一些极为重要的问题,这些问题是任何希望设置一种有效的安全机制的人必须回答的。

    TwinCAT 2 PLC入门教程V2.42.pdf

    第一章介绍了 TwinCAT 2 软件、 Information System 帮助系统的安装; 第二章至第六章介绍了扫描硬件,软件编程下载等一系列基本操作,让读者可以快速掌 握最基本的 TwinCAT 软件使用和操作; 第七章至第九章分享...

    TwinCAT 2 PLC入门教程V2.3

    第一章介绍了 TwinCAT 2 软件、 Information System 帮助系统的安装; 第二章至第六章介绍了扫描硬件,软件编程下载等一系列基本操作,让读者可以快速掌 握最基本的 TwinCAT 软件使用和操作; 第七章至第九章分享了...

    人工神经元网络及其原理

    第一章介绍了工人神经元网络的发展历史和它的主要特点,第二章和第三章介绍了生物神经元网络和人工神经元网络的基本原理,第四章至第十章讲述了几种主要的人工神经元网络的原理和具体计算方法,第十章介绍了人工神经...

    Node.JS第一章简介介绍

    Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装;该文档介绍从javascirpt、V8、优缺点、涉及领域、知识点,阐述了Node.js的开发涉及到领域和潜力。

Global site tag (gtag.js) - Google Analytics