关于Textmate:我的同事都很不喜欢Textmate,总结并回复一下他们所说的原因。
- 中文显示难看,这个是暂时解决不了的问题,是TM的硬伤。我也很讨厌它,凑合使用瘦体解决。
- 讨厌它的上下文切换,不喜欢Cmd + T的快速导航,而喜欢左右Tab切换。我坚持认为左右切换Tab是开发者的一个坏习惯,尤其是两个人在结对编成的时候,一个使用缩写的导航远比眼花缭乱的切换左右(尤其是跨越多个的时候)要容易理解的多。所以我在使用Eclipse的时候也推荐同事使用Cmd + e,可是Eclipse让我不喜欢的地方是它排列context的方式是固定的,而不像TM一样是根据访问次序和频度。
- Django的结构的文件名重复,所以Cmd + T的导航不太好用。这个我想是Django的一个痼疾,非常不友好。一个正确的文件命名可以帮助开发者快速定位代码片段,也帮助你把庞大的代码文件差分开。而Django居然默认了views.py、models.py、forms.py、urls.py,如果每样都有十几个到几十个的时候定位他们是多么烦人的一件事?但是如果有了一个正确的命名以后,用缩写定位他们是TM的杀手锏。相比之下Eclipse和Intellij都使用的是类似grep的搜索方式,只有TM是更聪明的模式匹配。
- 同事讨厌TM的目录树显示,很小,而且目录排列是按照字表顺序,很不舒服。我觉得我的确也不喜欢它,可是幸运的是我很少和它打交道,因为目录操作我大部分情况下都使用Terminal。还有个很爽的功能就是在TM里面你用Cmd + T打开一个文件以后可以按Ctrl + Cmd + r在目录树中定位这个文件。所以终极使用方案就是搜索优于人工扫描目录。
- 有人感觉TM的语法高亮差,也有人balme TM的HTML bundle里面连a的内置模板都没有。的确如此,可是1来你可以自己扩展,二来是在Eclipse里面我的同事估计从来没有用过任何快速模板功能……
- Rails的自动完成是基于上下文的,我觉得大部分时候它已经很够用了。不过没有静态语法检查好像的确是不如Eclipse的Pydev,但是速度上TM从此收益要快于Pydev很多。
- 最后是版本控制集成。同事们很喜欢Eclipse内置的Subclipse和Subversive,不过这两个东西我都很讨厌,因为如果你没有配置好Java HL的方式访问Svn,那么你就不能在命令行使用svn,否则你的svn功能就会崩溃。我简直想诅咒这个倒霉的问题……相比之下用了Textmate,你有天然的svn bundle,还可以轻松安装hg和git的bundle,让你的开发很清爽。而且它对于在极力推荐git svn转型的情况下非常适合。反正源代码集成功能不是我选择Eclipse的理由,反而是我放弃它的理由。
- 命令行下的mate让我工作变得很轻松,因为mate .马上就可以开一个新的TM工程,很便捷,轻量。
- 最后是Python的tabs和space缩进。TM处理的很好,只要你设置Soft tabs ( 4 spaces)使用起来就没有问题了。