This page lists a few general troubleshooting hints.
TextMate won’t launch?
~/Library/Application Support/TextMate for an old
TextMate.pid file. Delete it an try launching again.
Is the problem local?
A quick way to determine if it is a local problem is by going to System Preferences → Accounts and create a new account.
Then launch TextMate from this (new) account and test if the problem persists. If it does not, it is definitely a local problem and you may want to revert to default bundles and/or (backup and then) remove your
Plug-ins can also be the source of stability problems. These are found under
Is it related to Bundles?
The installed bundles affect everything reachable from the Bundles menu and language grammars. A very common problem is having checked out a default bundle at a given version (from the subversion repository) but not its dependencies, or checked out dependencies, updated TextMate, and now have an old version of the dependencies, etc.
Are any errors reported?
In addition to normal error dialogs, TextMate (or the components which it use) can report errors to the system console.
To see these you need to start Console located in Applications → Utilities.
In the left table (with the header of Logs) select the
console.log and look for errors, normally these would mention TextMate.
Why does TextMate stall?
From the shell (i.e. Terminal) you can run:
sample TextMate 10
This will monitor the TextMate process for 10 seconds and produce a log file. You can inspect the log yourself and it might give you a hint of what goes on.
Some common problems which can cause stalling is third party spell checkers, mounting a non-existing volume (when the system tries to populate the Recent Items menu with document type icons)¹, etc. The sample might often give a hint about this.
¹ The solution to this problem would be to quit TextMate and then from the shell execute:
defaults delete com.macromates.textmate NSRecentDocumentRecords to remove the problematic item from the preferences.
Is it related to bash (the shell)?
A lot of things go via the shell which source a few startup files. You can have
bash show which lines are executed as part of this process by running the following line in Terminal:
BASH_ENV=/Applications/TextMate.app/Contents/SharedSupport/Support/lib/bash_init.sh /bin/bash -xc 'echo test'