Using TextExpander with Perl? Hell yes!


After hearing about it on my beloved 5by5 Back to Work, I finally started using TextExpander. Today, I realised it can be used with my lifehacking language of choice.

Way of the future

TextExpander lets you assign blocks of text (or even images) to a shortcut you assign. For example, when I type ;nc it expands out to all my ncurses boilerplate. ;sig expands to my name, address, email, EARLs and phone numbers. You could leave it at that, and be crazy productive.

But you don’t have to stop there. If you create a new shortcut and choose choose “Context: Shell Script” from the top of the editing box, you can write shell scripts to process stuff. I ignored it initially, largely for the same reason I eschew (gesundheit) most Western fast food. I can eat it, but I prefer other things.

Earning some Siracusa cred

On a hunch this morning, I decided to test the limits of this “Context: Shell Script” box and enter some Perl (which of course I inserted with its own TextExpander shortcut!):

#!/usr/local/bin/perl […]
print("Hello, world");

When I typed my ;test shortcut, Hello, world was inserted in it’s place.


That’s right, TextExpander took the output from this Perl script, and used it in the substitution. Think of the possibilities. No, seriously, think of them.

I’ve used Perl scripts, a Dock shortcut and the Mac pasteboard to automate and send results to where I want since 2004. Now I’m going to go through them all and see how I can make TextExpander shortcuts for all of them.

Author bio and support


Ruben Schade is a technical writer and infrastructure architect in Sydney, Australia who refers to himself in the third person. Hi!

The site is powered by Hugo, FreeBSD, and OpenZFS on OrionVM, everyone’s favourite bespoke cloud infrastructure provider.

If you found this post helpful or entertaining, you can shout me a coffee or send a comment. Thanks ☺️.