在做毕业设计的过程中,需要经常编写Ruby on Rails代码。Rails工程的目录结构比较复杂,需要修改的文件分布在多个目录中,尽管手头已有VIM,但并没有为Rails开发进行专门的配置,编写起代码来就比较麻烦。某些人相信VIM能做任何开发用编辑器能做的事——只要你花足够多的时间和精力去配置,可我总觉得,花时间用VIM“山寨”一个TextMate或者其他什么编辑器,是一件无比蛋疼的事,所以,我希望找一个“适合”Ruby on Rails的编辑器,来完成这项工作。

在这个过程中,我试用了数款编辑器,它们各有各的特色,其中有一些,真的是相当有创意。而且,我还意识到,有很多特色各异的编辑器(并不限于代码编辑)并不为大众所知。因此,推出“非主流编辑器”这个专题,希望通过我们的介绍,让大家认识它们。

Ep1 TextMate的仿制品们

其实,Ruby on Rails真正的绝配,是Mac OS上的TextMate。这款编辑器提供了强大的宏和自动完成功能,并随着大量Rails视频教程的传播而迅速走红。但是,TextMate只有Mac OS版,这给Windows程序员们带来了机会,纷纷制作TextMate的仿制品,比如E,Intype,Sublime Text和RedCar。这些编辑器实际上大同小异,本文就摘取我比较喜欢的两款(Intype和Sublime Text)来介绍。

1、Intype

版本:0.3.1.734 Unstable
授权:免费(据说正式版发布会收费)
主页:http://intype.info

前言中我提到的Ruby on Rails开发,最后是用Intype完成的。Intype是TextMate的众多Windows仿制品中的一个,特点是比较简单——你一眼就可以看到它能做的所有事了。

intype-01

上图便是Intype的主界面,它提供了一个相当简洁的“项目管理器”——只需要将开发项目的文件或者所在的文件夹拖放到“Project Manager”中,就可以在Intype中方便地修改文件了,这样的设计就好像是专门为Ruby on Rails准备的一样。

下面给出一张代码编辑的截图,来看看Intype的功能。

intype-02

请看图中代码的第21行。首先,Hash前面有两个灰色的点,这代表两个英文空格。而第18行的rSet前面,则是一条两个空格宽的灰色横线,这代表一个硬Tab。不同于其他语言环境,Ruby on Rails推荐使用两个空格作为缩进的单位,在Intype中,可以在状态栏中修改Tab的模式。例如,我选择的是“使用空格(软Tab),宽度2个字符”,这样,在编辑器中按Tab,出现的就是两个空格了。

让我们回到第21行。我输入了Hash,现在光标在Hash的后方,此时按一下Tab,Intype就会自动生成Ruby里的Hash定义语句,如下图。

intype-03

这一功能被称作Bundles,Intype之所以被称为TextMate的仿制品,就是因为它。Bundles可以自动将预定义的简短代码或快捷键扩展成复杂的代码框架,不论是If…else还是case…switch,都可以用类似“ie[Tab]”、“cs[Tab]”这样的方式来输入。Intype内置了数十种语言的Bundle,用户还可以自己定义新的Bundle。只是如果能将这些Bundle导入导出,像TextMate那样建立专门的交流社区,就更好了。

Intype就是这样了,一眼望去特色功能就可以尽收眼底,用起来,虽然还有这样那样的Bug,但乐趣也是不少的。

2、Sublime Text

版本:1.3
授权:USD $59
主页:http://www.sublimetext.com

与Intype相比,Sublime Text的功能就强很多了,不但提供基本的代码编辑功能,还支持多段选择、列选择、正则表达式查找与替换等功能;当然,作为号称Windows版TextMate的编辑器,代码片段(Snippets,同Intype的Bundles)、宏、自动完成、自动重复等极大提高编辑者效率的功能也是必不可少的。不过,我喜欢Sublime Text的原因并不只是这些,更重要的,就是它的“MiniMap”,这是独一无二的,我还从没有在别的编辑器里看到过这样的功能。

sublime-text-01

正如上图所示,MiniMap实际上就是当前代码文件的缩略图,用户可以看到自己正在编辑代码文件的哪一部分。由于是缩略图,看上去更加直观,定位也就比滚动条更加方便、精准。

Sublime Text同样提供了项目管理功能,可以直接打开一个文件夹作为一个项目。但可惜的是,它似乎并不能像Intype那样,将项目文件列在侧栏里,而必须从Project菜单(或快捷键Ctrl+P)来呼出项目文件列表。

Sublime Text还提供了Build System和Console Output Panel,这使得它与Intype相比更加专业。借由内置的Build System的帮助,几种常见语言的Build和运行都不必再去用命令行,而是可以直接在Sublime Text里完成。这样,将Sublime Text置于全屏模式,就可以心无旁骛地编程了。

P.S. 关于Sublime Text,这里提供了1.2.2版的Crack Patch,1.3版不能用。115网盘下载

Patch会被识别成木马,请不相信爱情的同学PASS

我们不Hack软件,我们只是优秀软件的搬运工。