A couple of years back, after using Eclipse as the IDE of my choice, I switched to Coda. It was really nice to be able to work in a native Mac app. It was quick, responsive and beautiful. However, every so often I used to feel little disgruntled with how it is a little difficult to extend, especially, when it comes to snippets and setting up other workflows. I still love Coda, but I’ve been flirting with TextMate, BBEdit, even MacVim on the side. TextMate came close, but it has its own quirks.
A couple of days back I came across Sublime Text 2. Its tag line says: “The text editor you will fall in love with”. And it is true! I’m in love with it.
There are quite a few things that like about it:
- Extremely Responsive: Extremely quick once it starts up. Startup time is ok, but once it is up and running, it is blazing fast.
- Great sidebar: The sidebar where files and folders are displayed is very nicely done. It is simple — you can simply drag a folder from your filesystem there and it becomes available for navigation and file editing. Plus you can open bespoke files, which show up in a file list. Coda doesn’t have something like this, but TextMate does. But Sublime does it better. The only thing the sidebar lacks at the moment, is the ability to rename/add/delete files. But that is not something I do too often. Anyway, it is the most requested feature. So I’m sure it’ll be added soon.
- View file content without opening: Once you click a file in the sidebar, the contents of the file are display, without actually opening the file. That is pretty useful!
- Compatibility with TextMate: The language files and snippets from TextMate can be used pretty easily. And that means that a whole bunch of existing syntax/snippets can be used straightaway. Complete TextMate bundles are not supported however. You need to extract the snippets and language files.
- No need to reload: Customizing the snippets and language files and color schemes is a simple matter of opening them in Sublime (they are in XML format), and editing them. As you save them, they are reloaded. No need to “Reload Bundle”!
- Key Bindings and Preferences: The key bindings are completely, and easily, customizable. And so are the Options. They are stored in JSON format in a couple of files. Simply open, and change away. Again, no need to reload, they become available straightaway as you save.
- Useful find and select: The ability to find is very, very nice. You can easily find a word, symbol, file. Search and replace is very nice as well. There is an extremely useful “Goto Anything” option. A gem!
- Map of the file: You can see a little map of the file you are working on. If it is a long file, you can see exactly where you are in the file. Very handy. If you search for terms, you can even see them highlighted in the map. Very cool.
- Decent Forum: The forum for Sublime Text has a lot of discussion, and is pretty active. I posted a few questions, and with the exception of one, all were answered satisfactorily very quickly.
- Full Screen: A very useful Full Screen mode. Switch to it, and no distractions!
- Cross Platform: Works on Windows, Mac and Linux. I’ve only tried the Mac version. But I believe the Windows version works well as well.
- Portable: Apparently one can run it off a USB key. Which is great. But I haven’t tried that as yet.
The latest stable version is 1.4. But I’m using Sublime Text 2 — which is in alpha, but very stable. Except for one minor issue, I am pretty happy with the overall experience.
The documentation for Sublime Text 2 is still under development. The basic usage is pretty straightforward. But if want to extend it, forums are the best way to get going. But it’d be good to see more complete documentation soon.
I think it is an editor that is worth a try. I’ve already switch the associations on my system to open text files in Sublime!
Would like to hear what you think about it.
PS: I am using Sublime for a ColdFusion project. So I customized the TextMate snippets and language file to work with Sublime — a ColdFusion plugin for Sublime Text 2 so to speak..