`
caozuiba
  • 浏览: 896529 次
文章分类
社区版块
存档分类
最新评论

贫穷的VIM作者Bram Moolenaar

 
阅读更多

Bram Moolenaar
VIM编辑器的作者

Moolenaar先生,能介绍一下你自己吗?

我居住在荷兰东边,现在全职搞开源软件。我一个人生活,这样我就不必供养一个家庭。那会很难,因为我做的大部分工作没有报酬。我在家里工作,这样就避免了因为交通阻塞而浪费时间。我和外部世界的大多数沟通是通过email完成的。为了补偿自己,在假期我会到离家很远的国家旅游。我喜欢了解不同的国家及其文化。


你创造了一个VI编辑器的克隆产品。为什么你会选择VI?


最初那是个偶然的选择。因为在大学的课堂上我们被迫使用这个复杂得可怕的编辑器,却只有一页纸的文档。我开始欣赏VI是很长时间以后的事情了,那时我发现VI让我可以快速编辑文档。一旦我的手指习惯于VI,任何其它的编辑器就显得如此迟钝。因此一旦我拥有了一台amiga计算机,我必须要做一个类似VI的编辑器。那就是我决定开发VIM的原因。


VIM是你从头开发的还是派生于其它的VI克隆?


我开始于Stevie。这是Atari ST电脑上的VI克隆,后来移植到了Amiga。它仍有大量的问题,尚不能完成VI能做的任何事情,但是自从放出源代码,我可以自己修正它们。那也是我怎么开始欣赏软件开源的原因。一旦修改代码的数量超过Stevie最初代码,我就把它命名为VIM。


你是用开源协议发布VIM的,向我们描述一下该协议。为什么你不选择GPL?

VIM和其它许多开源项目的区别在于我完成大部分工作。基本上来说它是我的项目,即使许多其它人曾在工作上帮助过我。我决定什么特性能加进去什么不能。需要考虑一种符合运行该项目的协议。它允许随意部署未修改的VIM副本。修改过的代码我必须能获取到。该协议的一项重要条款是,我可以决定如何处理这些修改。这样如果经过我的允许,一些人就可以把VIM代码用到非自由、非开源的项目中。GPL协议则不允许那样做,因此从那个方面看GPL自由度小一些。理论上你可以在其它协议下使用以GPL协议发布的代码,但是你必须从所有版权人那里获得授权才行。那将非常复杂。实际上我只在很久之前申请了一次特殊授权。VIM的协议从6.1版起升级到兼容GPL。那要求可以部署用GPL协议的代码库编译的VIM副本。这也凸显GPL协议的主要缺点:它事实上是通过限制自由来实行自由的。

籍助于VIM捐助,你援助了乌干达的孩子们。你能看到自己慈善行动的明显成绩吗?

我定期拜访乌干达的孩子中心。每次去那里我都能看到进展。中心的学校在不断发展,我认识的许多孩子持续接受更多的教育。幸运的是,乌干达政局非常稳定,经济也在发展。这让该项目能够专心于改善学校和诊所。这意味着我们寄去的钱真的有助于改善条件并保持长期影响。我们现在看到,孩子完成他们的学业并返回中心工作来帮助教育更年幼的孩子。


最初的ex/vi的设计怎么可能仍如此实用?

基本想法一直是这样的,最重要的命令都是通过键盘的一些标准键来传达的,大多数是字母键。这使我们可以很快输入命令。VIM保留了VI的这一设计,但增加了许多在其它编辑器里发现的特性。这样你在两个世界里都得到了最优秀的编辑器:常用命令可以快速键入,还有一些高级特性可用。


人们通常对它既爱又恨,为什么?


在你能上手之前你要花费很长时间来学校Vi或VIm。如果你只试用十分钟就放弃它,那么你将只会记住受它折磨的痛苦时刻。当你不曾花费时间学习超越基本命令的部分的时候,你将不会获益于可能的有效编辑。但是当你的确学会使用Vim时,你能非常有效地工作,并会喜欢使用它。之后你会开始觉得其它编辑器很麻烦。比如,大多数其它编辑器不能重复一项变动。当我偶然使用word,结果我在编辑器里输入了":w"和"jjj"。


是的,比如当记笔记时这非常有帮助。当你在VIM上工作时你在用VIM吗(开玩笑)?

当然了。我用Vim来处理所有问题。大多时间使用最近版本,这样如果我犯了某个错误,我会是第一个注意到的人。


关于这个问题你透露一下:你使用什么操作系统?

我的主战场运行于freebsd4.9。它非常可靠,虽然有一些保守。我的桌面是KDE,虽然在实际工作中我大多时间运行xterms。我也有一台运行windows的机器,它用来进行Vim开发和运行一些驱动程序只兼容windows的特殊硬件。偶然我也切换到我的Amiga2000机器上,Vim开发是在那里开始的。


我们(整个编辑部门)常常使用Vim,我们认为它的开发已经结束。你认同我们的观点吗?


我也奇怪我是否应该停止加入特性并只是修改bug。所以我让赞助人投票决定是否加入某个特性。其中一项就是“停止加入特性,已经足够了”。它位于投票列表的最底端,这样就很清楚Vim用户的确希望加入新的特性。


所以你不想和Knuth先生对待他的Tex那样的激进。
告诉我们有关编辑器整体设计的一些事情,你使用什么语言和技术?

我使用优秀的古老的C代码。为了和足够多的C编译器兼容,我在使用现代C编译器的某些特性方面非常保守。这大多时间只出现在GUI代码里,无论如何它还是需要一个现代C编译器。主代码甚至不使用ANSI函数原型,因为它们不兼容那些更古老的系统。使用纯C的主要优势在于它相对来说简单一些,有很多可以使用的工具。代码体积可以庞大一些,需要在释放分配内存时小心一些。但是它比C++容易得多。像Java或Python这样的语言可能更容易一些,但是他们运行起来要慢很多。

你认为Vim太艳丽了么?

在Vim里有很多途径来改变颜色。我个人更喜欢只对少数情况配色。它使快速辨认不同的文本块变得非常容易。你可以在C语法高亮里看到配色结果,这样很容易就找到注释。但并不是每块文本都高亮。运算符或函数名并不高亮。一些人写了对所有高亮每块文本的语法脚本,如果你不喜欢那样你可以修订语法脚本规则,为更多的规则选择标准文本颜色。


告诉我们一些关于最近稳定版本的新特性。


Vim6.3加入了一些新特性。我专心于修正所有报告的bug。加入了一些命令,主要为了使写脚本更为快捷。比如:keepjumps使我们可以在不影响跳转表(jumplist)的情况下在文件间跳转。一个真正的新特性是支持翻译的帮助文件。那是因为现在有意大利和法国的文档翻译。这样用户需要通过“helplang”选项来选择他们喜欢的语言。以后会陆续增加更多的文档翻译。


你的近期和长期计划是什么?

Vim7将加入许多新特性。我已经开始加入人们发送给我的补丁。现在已经支持KDE了,使用的是Qt库。已经支持在PostScript打印机打印多字节文本。我计划往Vim脚本语言中加入列表和字典,这样使编写高级脚本变得更容易些。Vim脚本语言起初非常简单,但是Vim用户用它编写了越来越多的复杂脚本。在www.vim.org上可以发现超过一千个脚本。加入两个数据类型会使脚本编写更为简单。不知何故Vim用户不喜欢使用Python和Perl接口,这样扩展Vim脚本语言是势在必行的了。

我也计划加入一些大特性。我会用投票列表来决定先加入哪个。目前位于列表顶端的是智能补全,也可以称之智能感知(intellisense)。那个实现将是个挑战,尤其假设它应该支持许多语言和所有的平台。

我也需要清理一下代码。大量东西被加入,长时间的修改,导致代码混乱和函数冗长。这不仅是为了使代码看起来好看,它也应该避免犯错误。一些部分已经变得非常复杂,要想修改而不引入新的bug非常困难。但是我很谨慎,代码清理本身也可能引入问题。为了防止这种情况,需要增加更多的测试,这也是Vim7的另一个目标。


你认为linux发展的方向正确吗?

我不认为对linux而言只存在一条路径。它可以在同一时间无错误地往许多方向发展。我的确看到了一个危机:目前的linux开发大多数是由技术人员驱动的。他们是为linux工作机制做选择的最佳人选。商业和市场人员将尝试把linux朝不同方向推动,目的只有一个:赚更多的钱。我确实希望,这将不会导致错误的选择。


你害怕软件专利权吗?你在源代码里有专利审计吗?

我意识到软件专利权的危机。幸运的是,在欧洲软件专利权仍未被承认。这意味着要想控告我个人在代码里使用有专利的概念是困难的。仍存在一个危机,公司可能停止部署Vim,因为他们需要通过我的授权。这仅是一个很小的风险,因为我没看到哪家公司因为停止部署Vim而获利。很明显,没人会向他们支付一笔协议费。我将只是删除那些侵权代码。

专利审计只能由那些管理大量钞票的专门人员来完成。为Vim不值当做那些。我不确信为了几篇代码的小软件值得那样做,因为为了发布软件那将需要好几年才能申请下来一个专利。因此甚至当审计不出任何问题,次年才出来的专利仍会导致问题。专利系统执行情况实在太恶劣了,尤其在美国。真正获利的人只有那些律师和专利局的雇员。那就是为什么他们是承认软件专利权的主要支持者。



如果软件专利权被承认了并且一些公司为“使用H,J,K,L来移动光标移动”申请了专利,你将采取什么措施?我们说的一些拥有商业化vi克隆产品的公司,他们想消灭对手。你会从vim里移除这项特性吗?

不可能为已经众所周知的方法申请专利。这被称为现有技术(prior art)。很明显像使用hjkl来移动光标这样的方法在专利申请之前就已经存在了。然而,专利局不可能知道这个,无论如何也会授权该专利。那时我将不得不为了自卫而展开一场合法的战争。我不知道我从哪里获得这笔活动资金。专利律师太昂贵了。


感谢你接受这次采访,我们希望你在个人生活和职业生涯都能取得成功。

--------------------------------------------------------------------------

原文:http://www.moolenaar.net./interv_czech_en.html
译者:http://www.yeeyan.com/space/show/joshyu

分享到:
评论

相关推荐

    gVim用户手册 作者: Bram Moolenaar(中文版)

    usr 02.txt Vim第一步 usr 03.txt 移动 usr 04.txt 小幅改动 usr 05.txt 定制你的Vim usr 06.txt 使用语法高亮 usr 07.txt 编辑多个文件 usr 08.txt 分隔窗口 usr 09.txt 使用GUI usr 10.txt 大刀阔斧 usr 11.txt ...

    Vim用户手册中文版7.3.pdf.zip_vim 7

    使用 Vim 更多的是一种技能而 不是一种知识,Vim 的学习更需要的不是头脑而是双手,经常按书中的指示 进行示例性的操作,在学习 Vim 众多精致的技巧时,不要贪图一下子全都 掌握,最好是看一条技巧后,马上在编辑器...

    Vim完整中文手册

    Vim完整中文手册

    vim—ubuntu 使用详解

    (这里的vim,是改进的vi, Vi Improved简写,Vim 由Bram Moolenaar编写) vi的工作模式 分为命令模式和插入模式 以及 : ex模式; 按esc键就可以让vi进入命令模式; 插入模式就是你输入文本的模式了。

    最新vim用户手册(英文版)

    vim version 7.2 last change:2006 Apr 24 vim user manual by bram moolenaar

    Vim命令手册(较全)

    vim用户手册 作者:Bram Moolenaar 翻译:ZhaoRuFei<slimzhao@hotmail.com>7.2 版本:7.2

    代码编辑器 Vim 7.4 Win7

    Vim 7.4 released! [2013-08-10] Finally, after more than a thousand patches, there is a new version of Vim. This is mostly a bug-fix release. Also, many runtime files have been ... (Bram Moolenaar)

    VIM使用手册(中文版).pdf

    作者: Bram Moolenaar 翻译: ZhaoRuFei1 版本: 603.0 非常简单实用的vim使用手册。特别适合查阅。

    vimtutor-cn.txt

    2012年10月01日 赵涛 将 vimtutor 中译版从 1.5 升级到 1.7。 2002年08月30日 梁昌泰 感谢 RMS@SMTH 的指正,将多处错误修正。...感谢 xuandong@sh163.net...将vimtutor1.4中译版提交给Bram Moolenaar和Sven Guckes

    vim用户手册(最新)

    vim用户手册(最新) Vim http://vimcdoc.sf.net May 7, 2011 *usr_toc.txt*For Vim version 7.3.: 20067 VIM USER MANUAL - by Bram Moolenaar

    Vim 7.3 win版

    Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的慈善软件。  Vim是Linux上著名的文本编辑器,他是早年...

    vim-galore-zh_cn.pdf

    [Bram Moolenaar](https://en.wikipedia.org/wiki/Bram_Moolenaar) 于 1991 年发布初始版本。 Linux、Mac 用户,可以使用包管理器安装 Vim,对于 Windows 用户,可以从 [我的网盘]...

    VIM用户手册

    vim用户手册中文翻译版 作者: Bram Moolenaar @ slimzhao hotmail.com><br>翻译: ZhaoRuFei版本: 7.0

    Vi.Improved.Vim

    To get around the limitations of vi the people at Bram Moolenaar created the vim editor (the name stand for VI iMproved). It contains many more features than the old vi editor including: help, ...

    Vim用户手册中文版73.pdf

    详细介绍VIM使用过程中的技巧,对于提高编程效率有很大的帮助。可当做VIM手册使用。注:Bram Moolenaar编写,赵如飞翻译。

    vim-cpp:c或cpp语法文件

    c.vim基于Bram Moolenaar 而cpp.vim基于Ken Shan 。执照原始文件的许可与其原始作者相同。 更改的增强被许可为VIM许可证。 如果可能的话, vim-jp会维护那些文件。 但是,我们将此更改贡献给了VIM。

    vim7.3 release

    Vim 7.3 released! [2010-08-15] Finally, after two years of hard work, this is a new release of Vim. It includes an awful lot of bug fixes and a few new features. It is better than ... (Bram Moolenaar)

    gvim便携版 gvim绿色版完美配置

    Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的慈善软件。 本文转摘自『金电下载网』...

    gvim_8.2.0014_x64_signed.exe.zip

    Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的慈善软件。 Vim是Linux上著名的文本编辑器,他是早年...

    gvim73编辑器

    Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。现在是在开放源代码方式下发行的慈善软件。 Vim是Linux上著名的文本编辑器,他是早年的...

Global site tag (gtag.js) - Google Analytics