TextMate: Power Text Editor with All the Tricks

excellent
key review info
application features
  • Before you can get any work done, you need to be on top of your artifacts, such as stylesheets, includes, libraries, and application code. By arranging your files in an outline that follows the existing directory structure, it's no longer necessary to switch back and forth between Finder and editor to locate the next thing you need to work on.
  • (5 more, see all...)

People mainly use text editors for two different sorts of tasks: writing documents, and formatting them and writing code. These two tasks are polar opposites in regard to what is required from the program to perform the task and what the content typically is. For those who write code, be it HTML, C or anything else, the grand-daddy "de facto" for the Mac is BBEdit. BBEdit has been around since forever and has maintained its place as the best editor out there. However, there is a new kid on the block, one that comes to challenge and innovate the way you write? Meet Textmate.

A philosophical approach TextMate's approach is a pro active one. Instead of offering a solution to a certain problem, it proposes analyzing that problem, identifying the underlying pattern and offering a solution for all problems of the same kind. To achieve this, it makes use of a great shell integration and a predictive approach to most tasks.

Projects The first big thing that TextMate does well is working with many files. This is handled through Projects in which you add your documents for easy access. The contents of a project are shown in a drawer, and, any file from within that project can be easily opened by double clicking.

Working with Projects has several great advantages. For one thing, it remembers the files that were open across sessions. Then it automatically updates the project, meaning that you add a folder to a project, TextMate automatically updates the content of that folder whenever they change. Files that are created in other applications will automatically appear in TextMate when it comes back into focus.

When working on a project, TextMate makes your life easier by opening any file whatsoever. This does not mean that all files open inside the application, only valid text files do, but if you try to pen another document, TextMate will automatically have that file opened in the application it is associated with. It also offers a great project-wide find and replace function that will automatically list all the documents that contained the searched text and gives a preview of the location where that text was found.

Beside the fact that opening multiple documents will place them all nicely in tabs, the 'Go To' function is the real gem. It uses an abbreviated search, meaning that if you search for TM it will find files that have the word 'TextMate' somewhere in the name. People who have already integrated applications such as LaunchBar or Quicksilver into their workflow will greatly appreciate this function. Furthermore, just like the aforementioned programs, TextMate remembers what result you actually select at the end of a search and it will place them at the top of the list.

Not just a document TextMate has a great approach when it comes to dealing with the actual content of a document. For one thing you can create bookmarks anywhere in the document with just a simple click. This makes it easy to navigate quickly between the two points where you are working inside a huge document. The other great thing TextMate does is called 'Foldings'. When working in a language that uses blocks, the program automatically identifies the start and end markers for the blocks and shows the appropriate up or down arrow in the right gutter. You can collapse any block simply by clicking on that little icon and the arrow will turn to the right and the entire block will be replaced by a '?' icon. You can see the content of the block at any time by hovering the mouse over the little icon or unfolding it back to its expanded state.

The system works by using both the start/end markers but it uses them in conjunction with the indent level, meaning that it takes a bit of extra work to keep the code formatted properly for this to work.

TextMate also has 'completion' functions that you can make use of. The simplest of these is the automatic insertion of closing characters, meaning that if you type (, { or [ it will automatically insert ), } and ] respectively. This makes it much less likely to accidentally forget to close a block once it is opened. It also has a auto completion function that can be invoked using the escape key. This will look in the document for words that start with the letters that you have already typed and complete the word for you. You can tap escape multiple time to move forward through the results and use Shift-Escape to move backwards. The results are ordered according to their proximity of the word you are working on, meaning that the closest word will be the first result and the farthest, the last.

Copy and paste are also elegantly handled, with the program remembering all copied clippings and letting you browse between them, but perhaps the nicest touch is the fact that it will automatically analyze the current context as well as the pasted text and re-indent the pasted text so that it matches the current indent.

A bundle of features Bundles in TextMate are a bit hard to explain since they cover such a broad range of possibilities. The contain commands can be used to streamline your work flow and can be customized to your heart's desire. For example the HTML bundle contains a command that will automatically take the currently selected text and convert it into open and close tag (word will result in and the caret placed between them), while the Text bundle contains a command that will unveil a tool tip which shows how many lines, words, and characters the current document contains.

Each bundle item can be either invoked through a keyboard combination which can be defined by the user, and you can even assign multiple commands to the same shortcut which will invoke a list of the possible commands from which to choose from. Alternatively there are 'tab triggers' which are in essence command words that are then replaced by the appropriate content after tab is pressed. For instance, writing 'isoD' and then pressing Tab will automatically insert the ISO Date in the YYYY-MM-DD format. Tab triggers can also have multiple contents assigned to the same command word, which will invoke a list to choose from.

The Good So many great things that it is impossible to write them all here.

The Bad Has a heavy learning curve and is not very intuitive. A sit-down with the manual is recommended before you start using it. Clearly not the kind of program you jump into. Also has a hefty price.

The Truth TextMate is making a serious move towards becoming one of the best, if not the best text editor on the Mac. It is constantly being improved and keeps getting better and better. It is definitely a power user tool, but then again that is what it was intended to be. The rather high cost makes it less attractive for some, but then again, you definitely get your money's worth.

Here are some screenshots, click to enlarge:

Review image
Review image
Review image
Review image
Review image
Review image
user interface 4
features 5
ease of use 3
pricing / value 4


final rating 5
Editor's review
excellent
 
NEXT REVIEW: Shiira