aText - A Productivity Enabling Bargain at $5

(Background: aText is a text macro expansion tool, which allows you to do store templates of text that you repeat a lot and assign an abbreviation key so that when you type the key, it is replaced by the full text associated with it.)

I had an idea while running yesterday about how nice it would be to have or create a text macro expander with search. And it occurred to me that I really shouldn’t create software for something which may already exist. I should spend more time seeing what’s already there.

I purchased aText about a year ago from the Mac App store and I have been using it plenty. But I really hadn’t mapped out all of the functionality to the keyboard.


El Capitan Nerfs the App Store Version

So I did that this morning. But I ran into a snag. aText wasn’t working at all.

[The aText support page][0] indicates that new sandboxing on the El Capitan version of OS X has neutered the app unless you install a non App-Store version of it. I’ve been using it mostly at work where we are still not running El Capitan. But I was experimenting on my personal Mac so this was the first I had noticed that there were any problems.

The author of the software, Tran Ky Nam, provides a link to a video on how to do a license transfer if you have run the App store version at least once](

It’s not exactly seamless but totally not Tran’s fault since Apple routinely shifts the ground from under their developers, sometimes with good reason as in this case where the change reduces the chance of malicious software purchased from the Mac App Store.

The fix is short, and for anyone sophisticated enough to incorporate a text expander into their workflow, it shouldn’t be difficult:

  • Ensure you have run the app store version of aText at least once
  • Quit aText
  • Install the trial version and point it to the mac app store installation so that it can migrate the license data

The Search Function

Once I got aText un-sandboxed, all of my substitutions started working again and I was able to test the search function and, now I find no reason to create a tool that already exists. All I had to do was map a key binding to it. I chose CTRL-SHIFT-\.

Pressing the bound key pops up a search box wherever your cursor happens to be. (I’d capture a screenshot but I can’t seem to make that happen without also clearing away the search box.)

If you can remember enough to type part of the abbreviation key or the substitution text, you can find what you are looking for. This will be very handy to make up for my deadly combination of a memory and poor naming choices.

Insertion: Fields with Default Values

Another thing I just discovered today. aText allows you to insert placeholder fields into your snippet so that you are prompted to populate specific values when a substitution occurs.

I have captured some screenshots for a trivial example of ruby code but you can get the idea of how this might be really handy:

Insertion: Other Snippets

You can also insert the content of other snippets. This could be used either to create alias to give two names to the same snippet. Very handing for making sure that the things you think to search for connect with the actual snippets you’re trying to find.

You can also use snippet insertion to do a snippet “include” so that you don’t have to repeat text across a number of snippets that have similar content. For work, I use this to provide RMA addresses for our vendor which prompts me for the name of the device and a work item number. The addresses are particular to each site, but the RMA bit with the fields is common and having it in a single snippet prevents me from having to update it in 4 places.


Conclusion: Rich in Features and Totally Worth It!

At $5 a copy, I have no expectation that the author add any features. Tran has already delivered an outsized value when compared with the money I paid for the software and Tran seems to be doing maintenance releases for this software as needed.

This is a key bit of software for me and I am receiving no compensation of any kind for writing about it. I just wanted to gush about this software because I think that it can be useful for anyone interested in reducing drudgery from their workflow. Whether I am blogging or coding, this kind of software will help to make my life better and I think it could do the same for you.