[Editors-Ep1] TextMate的仿制品们

本文是 非主流编辑器 系列的第 1 部分。

系列前言

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

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

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,特别给出一个网址:http://www.21andy.com/blog/20091209/1463.html
这里提供了1.2.2版的Crack Patch,1.3版不能用。

Series Navigation[Editors-Ep2] 静下心来写作»

标签: coolcfan 于 2010/07/01 发表于 Cheatsheet

13 条评论

  1. A.shun says:

    沙发~

    这个专题好,关注ing

  2. A.shun says:

    我在这方面是轻度用户,目前 Scite 和 npp

    • coolcfan says:

      SciTe好。
      Npp是Notepad++?仿佛用的是SciTe的引擎。

      我有个很邪恶的想法——我每介绍一款编辑器,就让yibie拿VIM或者Emacs模拟它的特色功能……然后写出文章来……

      • A.shun says:

        对 Notepad++ 是用的 SciTe 引擎。

        哈,的确是够邪恶了。
        以我对编辑器的粗浅认识,无法说哪个好,但相信编辑器之神和神之编辑器无所不能。

        不过我只是用来偶尔编辑配置文件和css,足矣
        功能是可以模仿的,轻巧却是与生俱来的

  3. [...] This post was mentioned on Twitter by A.shun. A.shun said: RT @coolcfan: 非主流编辑器之旅,第一篇:TextMate的仿制品们 http://geek4.us/editors-ep1-textmate-alternatives/ [...]

  4. anguschou says:

    同关注ing。
    Intype 我试过,不过没有很仔细地用。它对snippets支持到何种程度?http://manual.macromates.com/en/snippets这官方的手册里,我知道Placeholders,Mirrors都是支持的,但是Shell Code(在windows上就是stdin、stdout)、Transformations支持吗?Transformations中的«options»能支持到何种程度。
    VIM是牛,但是能完整支持textmate的snippet的插件我还是没能找到。snippetemu ,snipmate 在功能上都差了好远。
    就我的试用来看,windows上对snippet支持最好的一个叫E-text editor的家伙,基本双向兼容。
    我自己在用的是emeditor,从v9开始有一个snippet插件,很不错。昨天v10也发布了。

    • coolcfan says:

      专业人士啊~Intype的Bundles似乎没有任何可以导入导出的手段,而且似乎TextMate的模仿者里,确实E是最接近的。看了一下TextMate的Manual,感觉Intype的Bundle编辑并没有这么多的样子。

      这里不会对Snippet作更深入的讨论了(至少现在不会),正如您所见,这个专题是“非主流编辑器”,而不是“代码编辑器的使用”;而且,以我现在对Snippet的了解,也无法深入讨论。最后,geek4.us毕竟不是一个面向专业人士的Blog,编程的事尽量少提,也许coolshell讨论这个问题更加适合吧。

  5. keelii says:

    windows下要是有像mac中的coda那样的编辑器就最好了,不过coda还是偏向代码编辑哈。

  6. keelii says:

    我试了试sublime,貌似对中文支持不好呀。改了编码方式还是有乱码!估计应该是和topstyle一样的问题!

  7. 爱月 says:

    不错不错~发现近期G4U更新很快啊~难道是爱月几天没上网的原因?~

您的留言!