TextMate shell utility (tm/mate)
Included with previous versions of TextMate was a shell command named tm
which is absent from the recent update (for those who don’t read the release notes).
The command is now located in the actual TextMate application bundle (under Contents/Resources
), and is named mate
(since some mistyped tm
and got rm
instead).
What you are supposed to do is, create a symbolic link from your bin
directory to the shell command inside the application bundle. So assuming you installed TextMate under /Applications
and you want the mate
command in ~/bin
, you would (from Terminal) run:
ln -s /Applications/TextMate.app/Contents/Resources/mate ~/bin/mate
Since this only creates a symbolic link, updating TextMate in the future should keep the shell command up-to-date as well.
I plan to allow TextMate to create this symbolic link for you, just need to figure out the best way to do so.
On the subject of the mate
shell command, setting your path to include ~/bin
needs (for bash) to be done like this:
export PATH="$HOME/bin:$PATH"
It is important that you use $HOME
instead of ~
, since the tilde is not expanded inside strings (the line should be placed in e.g. ~/.bash_profile
).
One purpose of the mate
command is so that you can use TextMate as your editor for Subversion commit messages and similar (for the few times you do not commit from within TextMate :) ), for this to work, mate
should be called with the -w
option, and for most applications you can include that in the EDITOR
variable, e.g.:
export EDITOR="$HOME/bin/mate -w"
There is one command though, which doesn’t support that. It is crontab
, and in this case you can either do a wrapper (script) for mate
which adds the -w
argument (that is what the previously included tm_wait
script did), or you can create another symbolic link to the mate
executable, which has _wait
as suffix, e.g.:
ln -s mate ~/bin/mate_wait
When the shell command is called with that suffix, it will automatically set the -w
flag.
If you do not plan to use crontab (which I guess is obsolete now that we have launchd), you can ignore all this.