Final thoughts on switching from TextExpander

Back in April, I wrote a few posts on switching from TextExpander to Keyboard Maestro as my snippet expander (I was already using Keyboard Maestro for other things). Now that I have a couple of months of this new system under my belt, I thought it was worth a followup post.

I won’t recapitulate the changes in TextExpander that prompted me to make the change—you can read those old posts for that—other than to say that Smile’s later reduction in price for TextExpander didn’t persuade me to stay with it. I agree with Gabe’s sentiments, both before and after the price change.

Moving my TextExpander snippets to Keyboard Maestro was relatively painless, thanks to Ryan M’s excellent migration script. All the snippets that were either

made the transition flawlessly. The only snippets that had to be redone by hand were my date and time stamp snippets and those that used TextExpander’s fill-in feature.

The date and time snippets were easy to rewrite. Keyboard Maestro uses ICU formatting strings instead of the more familiar (to me) strftime-inspired formatting codes in TextExpander, but it wasn’t hard to translate. And I had only a handful of them, anyway.

Keyboard Maestro time and date macros

Snippets that used fill-in fields were rewritten to make use of Keyboard Maestro’s Prompt for User Input action to save a string to a variable that’s later included in the text output.

User input prompt

Prompt dialog

There are pros and cons to this approach. TextExpander’s fill-ins have the advantage of letting you see your input in the context of the rest of the snippet, but Keyboard Maestro’s prompt dialog is more compact, especially when the snippet as a whole includes a lot of boilerplate text with only a few variable parts.

I’ve found no significant difference in using Keyboard Maestro instead of TextExpander. I don’t have hundreds or thousands of snippets, only dozens, so I haven’t run into any of the problems Peter Lewis, Keyboard Maestro’s developer, has warned about. The snippet expansion is plenty speedy for me.

There’s no question, though, that TextExpander is distinctly faster at making new text-only snippets, mainly because it has special commands for doing so. Since I don’t make new snippets very often, this isn’t an important consideration for me, but it might be for you.

I did, by the way, investigate both TypeIt4Me (which I used many years ago) and Typinator as TextExpander substitutes instead of Keyboard Maestro. I didn’t find either of them compelling. TypeIt4Me allows AppleScript snippets but not shell/Python/Perl/Ruby snippets, so it was easy for me to dismiss. Typinator allows all those types of snippet, but it won’t import script snippets from TextExpander (at least I couldn’t get it to do so). Given how important my script snippets are to me, that was a black mark against it. And another reason to appreciate Ryan M’s fine work.

Overall, the switch from TextExpander to Keyboard Maestro has gone much better than I’d expected. Because of Keyboard Maestro’s superior programming features, I’ve found myself creating new snippets that are more complex and capable than I could ever make in TextExpander. I’m happy with the change and don’t expect to go back.