I’ve been a Textmate user since 2004. I loved it then and I have a strong fondness for it now. Textmate converted me from an IDE to a text editor. Before Textmate I was using…wait for it…
Dreamweaver.
So Textmate was like huge. But like a lot of folks I’ve been frustrated Textmate hasn’t changed in seven-ish years.
I’ve recently become a quick convert to Sublime. If you’re a heavy Textmate user, I have 10 good reasons you should take a look at Sublime.
1. Directory specification for ⌘T
In Textmate, ⌘T opens a file browser. Say I’m looking for group_admin.spec, I can hit ⌘T and type ‘gro spec’ and then can jump to that file from a list. I use it tens of times every day.
There’s one big pain point with ⌘T: multiple files with the same name, such as this table.haml file that might exist in 16 different directories in this project.

Sublime solves this problem by adding directory specification. The file that I really want is in the software_requests directory. In Sublime I can do ⌘T and type ‘sof /table.ha’ and the results are much more manageable:

2. Find in project is fast like WOAH
Another feature with roots in Textmate is “find in project” (⌥⌘F). For some reason Textmate doesn’t index code and Sublime does. I did some ghetto benchmarking with a stop watch and while the results are miles apart, they shouldn’t be surprising.
Searching 2487 files for "SoftwareRequest.find" (case sensitive):
----------------------------
| Textmate | 45 seconds |
| Sublime | 0.9 seconds |
----------------------------
3. Split screenage!
Views -> Layout gives you several options for setting up various split-screen configurations. You can drag files via their tab between screens.


4. Configurable project files
When you save a project, you get a MyProject.sublime-project file. I’m especially excited about the easy “folder_exclude_patterns” and “file_exclude_patterns” settings.
{
"folders":
[
{
"path": "app"
"folder_exclude_patterns": ["log"],
"file_exclude_patterns": ["*.css", "*.log", "*.DS_Store"]
}
],
"settings":
{
"tab_size": 4,
"covert_tabs_to_spaces": true
}
}
5. Saved workspaces
For my Rails projects I like a straight two-column layout. For my Jekyll projects, I like the two-column but also need the sidebar. For my cli projects, I use either one or two-columns and the console. You get the idea.
With Sublime’s split screen views, side bar, and built-in console, there are lots of options for customizing your workspace. When you set up a project, Sublime automatically saves your project’s workspace in a MyProject.sublime-workspace file.
Note: Unlike .sublime-project files, .sublime-workspace files are frequently overwritten by the system, so don’t edit them directly.
6. Project jump
Building again on the value of setting up projects in Sublime is the project jump feature (⌥⌘P). Selecting a project from this list will open that project exactly how you left it last.

7. Vertical markers for code blocks
Finding elusive closing div tags is going to be a lot easier. A small but incredibly useful feature – vertical lines help you visually line up the begin and end of blocks:

8. You can use Textmate bundles
Sublime comes with a solid set of language packs and plugins (for more info check out package control). But it’s still new and all. Copy Textmate bundles into your Sublime Packages directory and with a restart you should have all of their functionality available.
$ cp ~/Library/Application\ Support/TextMate/Bundles/BUNDLENAME.tmbundle ~/Applications/Sublime2 ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/
I’ve pulled over my tmbundles for Jasmine, rspec, and Cucumber and so far it’s been plug-n-play.
9. Remembers language/framework on a per-file basis
Textmate remembers on an extension basis, so if you tell Textmate that appSpec.js file is Jasmine, now all .js files are considered to be Jasmine.
Sublime remembers on a per-file basis!

If you want Sublime to open all your .js files as Jasmine (or whatever), use “Open all with current extension as…”:

10. Running a single test and the last run test from anywhere
Thanks to Mat Schaffer for pointing this one out to me.
Textmate has that nifty ⇧⌘R command to run a single test. RubyTest gives you that, plus ⇧⌘E which runs your last test no matter what file you’ve got open. That’s hot, and as Mat said, a feature that’s usually only available in a heavyweight IDE like Eclipse.