这个世界上有主流的大众流行应用,但也从不缺乏Geeker。
一直以来,在Linux的应用中,总会有不少人向你推荐vim之类的工具。这事,icebird自己也干过,但我们也不能否认大众应用的巨大作用。如果没有这些大众应用程序,计算机就根本不可能普及。然而,这个世界上有主流的大众流行应用,但也从不缺乏Geeker。在本世纪初或更早的一些时候,Linux除了做服务器,其实只是Geeker们手中的玩具。现在,就让我们来一次大众应用和Geek应用的大对比。对于这里所列出的比较大众化的软件,由于使用人数非常多,网上资源也十分丰富,大多就不再多做说明了。重点,还是让大家了解一下Geeker的世界,以及下一次,再有人向你推荐vim的时候,你应该知道,你可以有的其他选择。
字处理之OpenOffice Writer VS vim
看到这个小标题,很多人是不是会吓一跳?你没看错,就是vim。我不是在开玩笑,也不是在宣传vim的无所不能,其实,这个对比中的后一项,和vim关系不大,Geeker们很多人都会喜欢用Markdown、reStructedText等与wiki语法相似的格式化文本来代替字处理程序。它们可以生成html、latex或者PDF等格式的文本。在某一部分功能上,确实可以代替office软件的字处理程序。但是,我们也应该可以看到,这些东西,绝大多数用户一辈子都没有必要去接触。毕竟,一个直接就能用的字处理软件,已经足够了。那么vim是怎么被我放到这的呢?一个很有趣的事实是:喜欢用这些东西代替字处理程序(我无意贬低使用这些技术的人,特别是pythoner,用rst写API文档等,的确是一个非常棒的方式。)的Geeker们,大多都会强调使用vim(或Emacs)来编写。于是,最后就变成了字处理软件,和vim的争执。
小tip: Markdown语法很适合用作Wrodpress博客的预编辑,当然,得找一个好的软件。在Ubuntu下,可以直接安装reText这个软件,对于苦于在WP的编辑器里写HTML标签的朋友,应该会有惊喜。
输入法之IBUS/fticx VS vim
啥子?又是vim?没搞错吧?没错的。不得不说,vim是Geeker们最有趣的玩具之一了。不过,不管是什么版本的vim,对系统输入法的支持都算不上好。于是,Geeker们想出了在vim内部实现一个输入法的办法。就是vimim这个插件。这个东西还真支持不少种类的输入法,常见的拼音、五笔、二笔、注音等输入法都可以安装使用。当然,唯一让vim控们比较郁闷的事情是:这个输入法在vim之外无效(其实也不会怎么郁闷,vim控们最大的愿望是让所有事情都可以在vim中做,emacs控们甚至连煮咖啡都可以用emacs来做)。
小tip: IBUS默认的拼音输入法,具有一个用户自定义词典的功能,利用这个功能,我们可以做很多事情。比方说hàn yǔ pīn yīn、【ㄓㄨˋ ㄧㄣ ㄈㄨˊ ㄏㄠˋ】(注音符号)、和Google输入法用ubuyao(嫑)这种方式来组合输入生僻字:嫑、嘦、嘦等,都可以在这里自己定义实现。如果你愿意,还可以做一个火星文词典,让我们也来Geek一次!
GUI之桌面环境 VS Musca
相信绝大多数用linux的朋友,都要选择一种GUI环境,比如Gnome,或者KDE,亦或是xfce或者是不常用的E17等等,但不管怎么样,它们都有一个共同的特点:桌面图标、系统菜单、有的还带一个启动面板,或者dock。总之,至少给鼠标一个可以启动软件,执行功能的地方。但是,有这样一种GUI环境,偏偏反其道而行之,这种环境,就叫做Tile Window Manager,平铺式窗口管理器,其中有一些,如awesome还好一点,至少有一个鼠标可以用的菜单;Musca则是这其中最极端的,极端到什么程度呢?启动后,屏幕上除了一个蓝色的框之外,什么都没有!没有桌面图标,没有任何的程序菜单,所有应用程序的启动,全部靠键盘完成。打开应用程序后,也没有标题栏和窗口边框,更谈不上什么最大化、最小化、关闭这些按钮了。很多朋友甚至无法理解,究竟弄这样的东西出来有什么用。其实,有一句近乎废话的说明:用熟练了,用这个东西效率要比使用通用桌面环境效率高的多(其实vimer也是这么说的)。当然,即使做为Musca和vim的较熟练的使用者,我也不得不承认一个事实:没几个人能有这个耐心把它们用熟。此外,Musca和Gnome的另一个巨大区别就是:Musca小的让人难以置信:只有300多K。
IDE之Eclipse VS vim
前文说过了,vim就是geeker们最有趣的玩具。这不,它又来了。当然,这一次的比拼,才是它本来的功能之一——程序代码编辑。和它相比的,就是各种IDE环境,Eclipse就是这些IDE环境中极具代表性的一款,当然,Linux下的IDE环境非常多,像Anjuta、Code:blocks、Codelite、Kdevelop,都是非常不错的IDE环境,只是Eclipse更知名一些,当然,功能也足够强大。再说说我们的Geeker的玩具——vim,它对代码编辑的支持极为强悍,记得曾有人说过,只有你想不到的编程语言,没有vim不支持的,虽然这句话有点夸张,但也足够说明vim对程序开发的广泛支持,除此之外,vim的插件多到了让人头皮发麻的程度,不管是自动不全,或是语法检查,还是新兴的HTML编辑利器zencoding,甚至是一些你从未想过的东西,在vim中都有各种各样的插件来实现它们,除此之外,比起各种大型IDE动辄几百M或者像VS数G的重量级体型,vim堪称身材苗条的典范了。只是,它还是那种“熟悉了效率非常高”,但不熟悉的时候几乎没办法用它的典范。
流程图绘制之Dia VS GraphViz
严格来说,Dia也算不上什么大众的流程图绘制软件,这一点,在Linux系统下的确是一大弱项。虽然Dia也比较强大,但它并没有Win下的Visio或SmartDraw那样对大众的亲和力。不过,至少可以用。不过Geeker们并没有在这方面有什么担心,他们拥有一个十分强悍的东西——GraphViz。GraphViz并不是一个可视化的流程图绘制软件,它采用一种叫做dot的语言,这种语言用来描述一个流程图或者是类图等等,GraphViz可以把它呈现成各种格式。当然既然是Geek的东西,那么免不了又要和vim扯上点关系。GraphViz有一个自带的一边编辑一边预览的编辑方法——dotvim,不用说,充当编辑器的,又是vim无疑。它可以让vim在编辑完毕存盘时,更新预览窗口中的图像。
排版软件之Scribus VS latex
Scribus是一款足以和pagemaker媲美并且很多方面超过pagemaker的印刷排版设计软件,功能上足以应付大部分书报等排版所需。latex,其实在国外算不上什么Geek软件,很多大学、出版社的排版都是用这个东西。但在国内,就是不折不扣的Geek软件了。由于latex并没有任何完善的可视化编辑方案,并且在配置的时候对中文的处理不是很方便(这一点在xetex中有所改善),没有经过一定训练的人员根本无法驾驭它。
小结
这篇文章详述了Linux下在几个领域中,可以被大众接受的软件以及被我们认为是Geek的方案,从这些例子中,我们可以看到两者的巨大区别:大众型软件更多的强调可视化、快速上手使用;而Geek型的软件,更多的强调轻量、效率,为此牺牲易学性也在所不惜,而且还有一个“文本为王”的思想贯穿始终,希望一切都能够用文本来描述(我想这是不是为什么那么多人吵讓着要让HTML5代替Flash的原因之一?)。这里,不想评述这两者究竟谁对谁错,但是,如果Linux平台想要在大众的应用中占据更多的份额,势必要有更多的更“亲民”的软件出现。
另外,就是希望各位Linuxer在向他人推广Linux的时候,不要一上来就让人家用vim这类难以上手的工具,这会吓跑一大部分人的。