So, quite late to the party, I'm starting to come around to liking Sublime Text 2 after many months of using BBEdit 10 as my primary development editor. I still like BBEdit, but Sublime Text is starting to pull away.
Some of the things that I like about BBEdit is that it doesn't have this runaway set of extensions and packages. It just works pretty damn well out of the box. BBEdit also has a real manual. And a real preferences UI. BBEdit is fast, handles large files well, and is very Mac native.
I decided to take another look at Sublime Text recently. One reasons is that my previous script for integrating PyFlakes into BBEdit broke in BBEdit 10.5, and I was starting to lose time to little mistakes that PyFlakes can find before I restart a dev server. I had a "PyFlakes on Save" in TextMate that I was really starting to miss. I knew there was something similar for Sublime Text and wanted to check it out. Enter SublimeLinter.
I'm not a fan of keeping track of lots of custom little packages and learning them. I have important work to do, and one of the reasons I stayed away from Sublime Text was my worry that I would spend more time tinkering with it to make it useful than I would spend doing my work. However, on re-evaluating Sublime Text, the following built-in functionality is really killer and has caused me to seriously consider a full switch:
- Knowledge of directories in 'quick open / open anything'. Neither TextMate nor BBEdit seemed to do this. I can have large Python customer or internal projects with many files named 'interfaces.py' or 'base.py' or 'configure.zcml'. Doing a quick open to get to one of those files in other editors hasn't worked out too well. In SublimeText, I can start typing the path and hit '/' to start matching against that subdirectory.
- Open Anything rocks. Being able to not just jump to a particular file quickly, but to then navigate right into its classes/methods/etc, all from the keyboard, is again pretty damn amazing. And fast!
- Multiple Selection. being able to quickly rename a variable or method and also change all of its other uses in one fell swoop is pretty neat. I've generally solved this with "use selection for find / use selection for replace" but Sublime Text's option seems even better.
- Split Windows. TextMate 1 never offered this. BBEdit allowed splitting the same file, but I don't think it allowed splitting multiple files. In general, this problem is solved with multiple windows, but I've missed being able to split windows with different files like I could do so easily in Emacs and Vim. It's nice to have a fairly modern editor that is fairly native to OS X that does this. This is especially nice in the full screen and 'distraction free' modes that I like to hit from time to time.
Something that was bothering me back when I used TextMate, and Emacs (and sometimes Vim) before that, was how out of sync my home and work setups could get. I do very little coding at home any more, and any time I would open up my editor, all of the little settings and massages that I had set up at work wouldn't be there. BBEdit 10 solved this with some native support for storing preferences and snippets and scripts in DropBox. I found some tips and tricks for storing Packages and Settings for Sublime Text and they seem to work.