Things have changed since the last time I used TextMate (that was probbaly two or three years ago).
TextMate 2 is now available on GitHub. I don’t want to spend much time into the “TextMate is dead, Long live TextMate” debate; it has been discussed elsewhere and it seems that many users turned to Sublime Text. The fact is that TM2 is now hosted on GitHub and anyone can contribute to its development and somehow ensure its sustainability. I always feel sad when I hear that a great project sank into oblivion. Although I really much like GNU Emacs, TextMate was something special for me: a minimalist GUI with much functionalities, no useless icons or “tool bar”, a keyboard centric approach to editing, and a powerful customization system via the Ruby scripting language. It looks like GitHub has become the preferred hosting solution for dead projects, handing over to new developers (not a bad idea), or to get around Apple App Store and the sandboxing policy (shame on you, Apple), see e.g. Vico :
Vico is a programmers text editor with a strong focus on keyboard control. Vico uses vi key bindings to let you keep your fingers on the home row and work effectively with your text. http://www.vicoapp.com
Something I found annoying (much like in Emacs auctex) is the use of varying (proportional) font size for headings, as well as different font shape (Baskerville). This can be changed by editing Bundles properties (⌃-⌥-⌘-B) in Themes ‣ Settings.
There’s no split view option but it appears to be a requested feature. However, the user interface has kept all of its original design, with tab support added (which was seriously annoying before). I haven’t found a way to open new file in new tab but there’s a ‘Merge all windows’ option.
I had to customize indentation (with spaces instead of tab) and wrap mode to mimic Emacs behavior which I prefer. Unfortunately, there’s still no true auto-filling mode although I found a little hack based on
fmt (How do you force carriage return after 80 characters?). One should be aware that by using ‘Reformat text’ (⌃-Q) at the end of each paragraph will result in a lost of syntax highlight for, e.g., inline Markdown www hyperlinks.
- Stata offers syntax highlighting and command completion (BTW, I forgot that it was the Escape and not Tab key as in Emacs :-) but sending command from Textmate buffer to Stata is done via AppleScript which is of no interest to me. (Surely, we could do some nice stuff with tmux and Stata from the command line.)
- R and Sweave (built-in) bundles, or knitr, offer minimal support to process R and Noweb files. There’s even an eval and step command (with Mac GUI).
- Enhanced Markdown support (including MultiMarkdown) and built-in visualization (although we could make Marked and textMate play nicely together).
The Clojure bundle relies on Cake and there’s no support for nREPL or Leiningen. More generally, I found that support for Common Lisp is quite scarce with just syntax highlighting and few shortcuts for CL.
How does it differ from Sublime Text?
Well, that’s difficult to say because I haven’t used Sublime Text for real work. What is really great about ST2 is the sublimeREPL package, although nothing compares to Emacs inferior processes, IMO. Such embedded REPLs are obviously missing in TextMate, but we could certainly bind TM to iTerm2 in an unobtrusive way.
I read on Quora that Chris Fonnesbeck always found that using a multi-platform editor is a bad idea, but I do not necessarily agree. For instance, GNU Emacs (or Vim) runs on all three main OSs and offers an almost similar UI experience and interaction with the system (meaning, it does not target a particular platform, although it should probably be better used on Un*x-like system). However, I think that it is not a good idea to switch between several editors depending on the task at hand: we need to use the same software every day to really get used to it and appreciate its pros and cons.
To sum up
I personally tend to use as few applications as possible. Usually, I’m happy and probably most productive with just Emacs, a Z-shell, sed/awk, and a combination of GNU Coreutils. That’s a very basic setup, but that’s what I learned several years ago and I’m still trying to learn more of them. About Emacs, I abandoned the idea of using the Cocoa application and I am now using it exclusively from iTerm2. Here are few other applications I use: Marked, Skim, Gitx.