TextMate News

Anything vaguely related to TextMate and macOS.

Posted by Allan Odgaard


Buy a Mac, get TextMate!

Update: Please no more letters asking for free licenses!

I get a fair number of letters asking me to port TextMate to other platforms (not to mention that “textmate for windows” is now in the top 5 of search phrases I receive hits for) — mostly I politely reply that I am presently not interested in doing a port (from now on though, I will just send a link to this post).

Occasionally I write a bit more, as was the case with Chris Campbell. He sent me back the image below where you can see part of the conversation (click to enlarge).

Buy a Mac, get TextMate for free

I love how Chris took the time to set this up and email me the picture. It deserves to be preserved in the form of a blog post :)

It also made me look into setting up a dedicated program for “buy a Mac, get TextMate for free” (in a way where I would still get some revenue). Unfortunately Amazon’s operating agreement for their affiliate program says:

In addition, you may not: (a) directly or indirectly offer any person or entity any consideration or incentive (including, without limitation, payment of money (including any rebate), or granting of any discount or other benefit) for using Special Links on your site to access the Amazon.com Site (e.g., by implementing any “rewards” program for persons or entities who use Special Links on your site to access the Amazon.com Site);

That is no good. At Apple I can only find a .Mac affiliate program. So does anyone have an idea about how to handle this? And preferably in a way where it could be fully automated.

Posted by Allan Odgaard


Missing License Keys

Unfortunately TextDrive is having problems with DDoS attacks which means that (at least some) license key emails are queued locally instead of being fully delivered.

As noted in my previous post I am presently attending C4 in Chicago (that is, registration starts in two hours) so hopefully people registering will be okay with some noticeable delay receiving the license key.

If your copy has expired, and you are affected by the delay, please write textmate (at) gmail dot com and state this (yes, use the gmail address, since the various @macromates.com addresses will also be affected by the DDoS attack).

And for the people affected, please accept my apology — I will look into a backup server solution when I return from vacation.

Posted by Allan Odgaard


Vacation in the States

I am going to spend the next three weeks in the United States.

The first few days will be spent in New York City and then off to Chicago where I am going to the C4 conference (and have even been persuaded to give a talk there). I will go back to NYC for the last week of my stay.

In this period, I won’t respond to much email. But the mailing list and IRC channel will, as usual, serve as outlets for potential support questions — just a FYI, when I reply to a list letter, as opposed to a private letter, I generally spend a little more time on the reply. So if you think sending me support questions in private is better (for you) then you are wrong :)

Posted by Allan Odgaard

Customized Command Output

TextMate commands can have their output shown as HTML. This is useful for commands which by nature generate HTML, like visualizing the HTML resulting from the simpler markup that some of us prefer to work in.

The feature is also used by many other commands, for example script-runners, build commands, and many version control commands get nice rich output by harvesting the features of WebKit.

Initially there was much inconsistency between how the command’s output looked, since each was basically generating its own HTML page. But Stanley Rost added a function (usable by the commands) to get a standard header with appropriate style sheet. It was later improved to have a pop-up to change the style sheet, mainly done so that users of “bright on dark” editing themes can have command output that match in contrast.

By default there are four themes to pick from but it is possible to create your own theme and recently I came across the Virtuoso theme, which as far as I know is the first third-party command-output theme :)

The way theme-switching presently works is by assigning a class name to a top-level div tag. This class name is that of the theme, and each theme thus needs to target only elements under this class. This will however shortly be improved so that the actual style sheet is swapped, rather than just the class name (so that theme authors do not need to clutter their themes with class selectors).

Posted by Allan Odgaard

The Pug Automatic

If you like useful tips with a slight TextMate bias then The Pug Automatic is a great blog to add to your news reader.

It has a TextMate category with useful tips such as how to simplify / specialize the paste online command or a “grep in project” replacement for the native “find in project”.

Posted by Allan Odgaard


TextMate 1.5.6

Version 1.5.6 was released last weekend and while my main focus is on 2.0 (which for the records only has a stated ETA of after Leopard) a lot is still happening with TextMate bundles, so here’s a few highlights.

Read the rest of the post »

Posted by Allan Odgaard


Recording Screencasts

I am often asked about details related to recording screencasts, so here goes.

Read the rest of the post »

Posted by Allan Odgaard


Dialogs in TextMate (Part 2)

This screencast is part two of the introduction of tm_dialog which I did last year.

The screencast goes through:

  1. A few changes made since the first screencast
  2. Returning values such as list selections
  3. Using the standard defaults system for keeping (UI) state across sessions
  4. Asynchronous operation: not blocking TextMate and updating the dialog while on-screen

Here is a direct link to the screencast (14 minutes)

Posted by Allan Odgaard


The MacTech 25, 2007

MacTech magazine recently released their list of the 25 most influential people in the Macintosh community.

The list is based on user votes and has a nice spread between independent software developers and writers — I am of course honored to be on a list with so many of the people I read about long before I got my own breakthrough. A big thank you to all who voted for me!

Posted by Allan Odgaard


TextMate’s Many Key Shortcuts

I have previously posted about cheat sheets and recently saw a new cheat sheet plus this nice idea of making a desktop background with TextMate shortcuts, so I decided to write a post with a few tips related to finding TextMate functionality, conventions, and the modifier glyphs.

Read the rest of the post »

Posted by Allan Odgaard

1 Comment

Customizing TextMate

James Edward Gray has written a tutorial for O’Reilly’s MacDevCenter.

The tutorial shows a slightly untraditional way to customize TextMate, as it transforms the text input window into an interactive RPN calculator.

Posted by Allan Odgaard


FlickrMate Bundle

Brett Terpstra has created a FlickrMate bundle which amongst other allows you to browse your Flickr images (using tm_dialog) and insert a link to the selected image (e.g. in your blog post).

Brett does a lot of interesting customizations and writing about TextMate, so if you’re not already subscribed to his blog, then I suggest doing so! :)

Speaking of Flickr, Michael Sheets pointed me to this great capture.

Posted by Allan Odgaard


The TextMate URL Scheme

TextMate registers a custom URL scheme on your system which allows you to open files in TextMate by asking the system to open a txmt URL.

The format is: txmt://open?«arguments» where arguments can be:

  • url — the actual file to open (i.e. a file://… URL), if you leave out this argument, the frontmost document is implied.
  • line — line number to go to (one based).
  • column — column number to go to (one based).

If you have TextMate installed, you can try it out by having it open /etc/profile.

One reason for this URL scheme is that many TextMate commands generate HTML output with links that open files in TextMate. For example the TODO bundle has a “Show TODO List” command which will scan your entire project for FIXME and TODO tags, then present the found results nicely in HTML, and allow you to click on them to go to the appropriate location. Another example is the Xcode bundle, which has a “Build” command that will show errors and warnings that correctly link to your source code.

But seeing how these commands generally run in a custom HTML view inside TextMate, it is possible to use JavaScript extensions, so a much better case for the txmt URL scheme is debugging web applications!

For Rails there is Duane Johnson’s Footnotes plug-in (included in the default Rails bundle) and for PHP, Ciarán Walsh recently added a few commands to easily allow PHP scripts to markup stack traces with proper txmt links (see PHP → Help → 3.3 TextMate Support File).

An unfortunate reality of web development is that if you work on mainstream sites, you need to test your site in Internet Explorer. If you do this using Parallels Desktop for Mac then (thanks to Ruy) you can have txmt URLs work in IE.

Posted by Allan Odgaard


Jolt Productivity Award

TextMate, together with Adobe Captivate 2 and ElectricCommander, recently won a Jolt Productivity Award in the Utilities category. The Jolt Winner (as opposed to Productivity Winner) in that category was VMware Lab Manager.

To represent me (as I was in Japan at the time, thanks for the sightseeing tips!) I had Scott Stevenson, who wrote a post about it with a picture of the trophy.

Scott already express my gratitude towards the TextMate community, but let me just assure you that this is sincere — even though I do 1-2 hours of support each day and put in a lot of hours coding, I really feel that TextMate is a community product. A lot of the functionality which I use has been contributed or refined by users, a lot of discussion about features/infrastructure happens in the open on the mailing lists or IRC channel, and a lot of support is handled by users here as well.

If I was alone with TextMate, it would be nowhere as useful as it is now and I would be deprived of the many moments in which I am seeing the best of human nature: people working together across borders not motivated by profit but for one simple cause: to make things better!

This is what motivated me to make TextMate in the first place, and it is still the reason I am sweating over 2.0, because things can still be much much better! :)

On that note, let me just say kudos to Apple for persuading EMI to go DRM-free — I for one will buy much more music now. The 30% price increase sucks though. Already ITMS did often not give a price advantage over Amazon, but I guess the labels wanted higher prices, and Apple used that to press them into stripping the DRM in a rather clever way.

Posted by Allan Odgaard


Lost in Tokyo

Two of my friends have a conference in Tokyo, so I decided to go with them for some sightseeing and is now sitting in my room at the Hotel Astil Ueno (near the Ueno railway station).

This means that low priority email will have to wait till I am home (the 31st of March) but also that if you have any tourist recommendation then definitely let me know!

Posted by Allan Odgaard



Todd Ditchendorf has released version 0.3 of his BlogMate plug-in:

BlogMate is a free, simple, plug-in for the popular TextMate editor that allows creating and editing blog posts for some types of blogs from a floating palette within TextMate

You can see how it works in the BlogMate screencast.

Posted by Allan Odgaard


Posted by Allan Odgaard


Edit in TextMate (from Firefox)

While I have mentioned this before, TextMate comes with an input manager you can install. Hereafter you can press ⌃⌘E in any Cocoa text field (even editable WebViews) to send the text to TextMate, where saving and then closing the window will take you back to the calling application (with the updated text).

Recently Brett Terpstra wrote about how to get similar functionality working for Firefox (which is not using Cocoa text fields).

Posted by Allan Odgaard


Sharing Bundles

An easy way to share a bundle is to:

  1. Drag it directly from the bundle editor onto e.g. your Desktop.
  2. From Finder select to Create Archive of «your bundle» by bringing up the action menu (e.g. by control-clicking its icon).
  3. The resulting zip archive can now be uploaded to a web server or emailed to your friends.

Hint: you can also drag individual items from the bundle editor if you wish to only send a particular command or snippet to someone.

Generally though, if you update the bundle, you will have to repeat the above steps, and if you use the same bundle on multiple machines, you will have to keep track of which machine has the latest version (yes, .Mac syncing would be nice here).

So a much better way is to store the bundle in a subversion repository. This also gives you a way to undo heavy local experimentation :) There is a nice step-by-step post about how to share custom bundles with TextMate over at Robby on Rails.

Posted by Allan Odgaard


JavaScript Tools

Some time ago Andrew Dupont wrote a TextMate bundle for JavaScript developers which includes a very nice front-end to JavaScript Lint, an indispensable tool for JavaScript programmers.

Thomas Aylott has since adopted the bundle and announced that it is now available at BundleForge (svn link).

Read the rest of the post »