在善用佳软上看到一篇文章,介绍的是一款编辑器——SUBLIME。印象不错,下下来试用了一下。功能之强大,简直让我的Emacs也为之汗颜。EMACS,VIM也是跨平台的。但是,就像Windows下很少有人用VIM或EMACS一样,SUBLIME或许会在WINDOWS下流行开来(虽然不会像EMACS和VIM在UNIX和LINUX上那样的流行),或许MAC上也会有不少人用它,但它恐怕是无法在LINUX/UNIX上有多大成就。因为它虽然跨平台,但还是带着太多WINDOWS的东西。而WINDOWS和LINUX/UNIX,是两种完全不同的文化。开源文化不仅在于开放源代码,更是一种自由的精神。在LINUX/UNIX上,你几乎有无限的自由去做你想做的任何事,修改内核,配置一个独一无二的桌面,甚至完全不要桌面,发明一种新的编程语言,一种新的版权协议,义务翻译英文文档,报告程序bug或者自己修改别人程序的bug.有些事情或许再我们看来难以完成,或者只是一种奢望。但奢望总比安于所得强些,所谓技进乎艺。唯有不断地磨练自己的技术,永无止境,才能达到艺的境界,才能让技艺和自己的生活完美地融合在一起。而不是只会在情人节的时候沾沾自喜地用某种语言输出一句“I love you"。
而LINUX/UNIX给我们提供了一个不断追求技艺提高的平台。这是一个高手云集的世界,你永远不敢说自己是最强者。在不断的竞争中,开源就像微软所说“像癌症一样“不断地迅猛发展。VIM和EMACS就是这种文化孕育出来的最为优秀的产物之一。
为什么它们会被称为神一级的编辑器?因为自由,以及对技术的热爱。一个安装出来要好几个G的virtual studio,在功能上完全比不上几十兆的EMACS和VIM。因为EMACS和VIM只需一些几十K的插件,就能支持你所知道的任何语言。语法高亮,自动补全,快捷键绑定,编译,调试,项目构建,源码阅读……。EMACS和VIM都是公开源码的,你可以自由修改以满足自己的需求,还可以自己写插件,并免费提供给别人,因为一切都与利益无关,有关的只是兴趣,以及分享的快乐。在设计之处,EMACS和VIM就有无限扩展的能力。在VIM里你可以很容易地执行SHELL命令,或者调动系统中任意的程序。在EMACS中,你可以很容易地扩展出普通编辑器所无法具有的功能。源码控制,RSS,邮件客户端,网页浏览,阅读PDF文件或者图片,听音乐,看电影,IRC聊天,记笔记(evernote),wiki,微博(twitter),甚至查看Google Map,画图,玩游戏,又或者管理系统中的文件……
EMACS和VIM是两个极端。VIM是UNIX软件设计的精髓的体现:只做一件事,并且做到最好。EMACS则更像是LINUX的一种代表,丰富多彩,给人以无线可能。但有些东西是共通的:开源,还有人在与编辑器的接触中人与编辑器的共同进步。从某种程度上说,它们确实是神器。
而在WINDOW上,一切的软件,WINDOWS本身,Virtual Studio,UltraEdit,NOTEPAD++,还有这个SUBLIME,呈现的完全是另一番景象。在这些软件的作者眼里,他们的用户都应该是傻子,我给你什么,你就用什么。我把所有的功能都做出来,你为这些功能掏钱。在LINUX/UNIX上,软件开发者开发出来的软件也是他们自己喜欢用的。其实评判一个软件的好坏很简单,那就是看他的作者会不会会用。LINUX在用LINUX,StallMan在用EMACS,微软的开发人员在给LINUX报告BUG。那些WINDOWS上自以为是的程序员高高在上地看着他们开发的软件的用户,以为不开放源码就能永远保持技术的领先。在用户变得越来越懒的时候,自己也会越来越失去创新的活力。
SUBLIME是也是可扩展的,但是和VIM与EMACS有根本的不同。对于一个不开源的软件,不知道有多少人愿意为它写插件。对于一个普通的用户,他最多也只是会去看一眼那些看起来长的要命的选项设定,然后心满意足地去这个“优秀”的软件。对于VIMER和EMACSER则不然,They stay foolish,and they also stay hungry!。谁会满意最开始的那个EMACS或VIM,在常年累月的“折腾”中,手中虽然仍然是一个不太完美的编辑器,但是,眼界和能力,已不是当初的那个新手了。
EMACS和VIM还有另外一个很大的福利:SHELL和LISP。这更是普通编辑器所无法比拟的。有谁会在用SUBLIME的时候PYTHON编程也很快的提高呢?但是要想用好EMACS,你要熟练LISP,要想用好VIM,你要熟练SHELL,这是成为高手的必由之路。也没有几个人愿意避开。在LINUX/UNIX上,这么好的学习和锻炼自己的机会,谁舍得呢?