7 TextExpander Macros to Increase Your Typing Efficiency

Make every keystroke count.

The most important thing you can do to increase your productivity at the computer is to learn the keyboard shortcuts for the apps you use. Seriously. Common operations all have keyboard equivalents so you can perform that action without having to move your hand away from the home row.

Close behind that are using accelerator apps like LaunchBar and TextExpander. LaunchBar (and the like) lets you launch apps, invoke scripts, and do a whole bunch of cool things without using the mouse. It’s one of the first third-party apps I install when setting up a new computer.

TextExpander watches what you’re typing, and when it sees you type in an abbreviation you’ve set up ahead of time, it will replace the abbreviation with an expanded piece of text. These can be substitutions that never change (“omw” becomes “I’m on my way.”), or they can run scripts and include the output in what you’re typing. It’s a great way to increase your efficiency when typing.

Here are the seven TextExpander macros I use the most.

Photo courtesy of ©iStockphoto/Nastco

  1. Insert today’s date. I use YYYY-MM-DD (eg, 2014-12-02) dates when filing and organizing. Scanned receipts, daily planner notes, and bills get a date like this in the name of the file or note. This gives a standard format I can search for to find items related to a specific date. (It also makes it easier to sort things by date.)

    Macro: yymd (plain text)

  2. Insert another date. The current date is pretty simple, and TextExpander lets you do basic date adjustments (eg, yesterday is %@-1D%Y-%m-%d). If you need more complicated date calculations, you can do a shell script macro:

    echo -n "`date -v-sun +%F`"
  3. Insert a greeting appropriate for the current time. This will expand to “Good morning”, “Good afternoon”, or “Good evening”, depending on the time of day. It adds a nice touch at the start of an email or instant message, and with the macro, I don’t have to stop and think about what time it is.

    Macro: .hi (shell script):

    # coding=utf8
    from datetime import datetime
    import sys
    currentHour = datetime.now().hour
    if currentHour < 12:
    	sys.stdout.write("Good morning")
    elif currentHour < 18:
    	sys.stdout.write("Good afternoon")
    	sys.stdout.write("Good evening")
  4. Type your email address. This was one of the first tips I saw on how to use TextExpander effectively. I didn’t pay much attention to it because I didn’t realize just how often I type in my email address. Think about how my websites you sign into using your email address. You’re typing it all day long! Create a macro for it and save yourself a surprising number of keystrokes.

    Create a plain-text macro that expands to your email address. Pick an abbreviation like ..em, ..workem, ..homeem, etc. Picking this abbreviation may be a little bit of an art. You want something short, so you’re saving keystrokes, but if you’re trying to create macros for multiple emails, they’ll need to have distinct abbreviations.

    Pro tip: You can also create a keyboard shortcut to enter your email address quickly in any iOS app.

  5. Compose an email. Find yourself writing the same email over and over again? Write the email once and convert it to a template. Include some queues to personalize the message. This can be a huge productivity saver when a message comes in, or when you need to fire off a quick message.

    For example, here’s a template for a macro (.licr, plain text) for a custom message for a LinkedIn connection request.

    %snippet:.hi%, %filltext:name=name%.
    It was great to meet you at %filltext:name=event%. %filltext:name=Comment:default=Comment on what we talked about.%
    %fillarea:name=Call to action:default=If you haven’t had the chance yet, don’t forget to sign up for my newsletter at ColterReed.com. You’ll receive those great tips and techniques we discussed straight to your inbox.:width=65:height=3%
    Thanks again, %filltext:name=name%, and I hope you have a great day.
  6. Add your email signature. Email signatures are tricky things to get right. Even when you’ve crafted the perfect signature, you may not want to include it on every message. Rather than using the signature feature built in to your email client(s), it might be easier to put your signature(s) in a macro.

    Create a “Formatted Text, Pictures” macro for each signature. (You can also use Plain Text, if that’s how you roll.) I use macro names like ..home, ..work, ..church, ..social. That time I tried using a scanned copy of my initials as my signature? That was a macro.

  7. Type special characters. If you regularly look up how to type certain special characters, symbols or emoji, try assigning them macros. First, make sure there isn’t already a direct way to type the character, like ⌥G for the copyright symbol ©. If there is, learn it. If not, add a macro.

    My character macros include:

    Macro Character
    .yes 👍
    .no 👎
    .llap 🖖

    Pro tip: You can also define these as keyboard shortcuts (Settings > General > Keyboard > Shortcuts on iOS or System Preferences > Keyboard > Text on OS X).

It will take time to set up TextExpander with the macros that you will find most useful to you. It all depends on what you type, over and over. Watch for patterns. If you’re tired of typing it, see if you could turn it into a macro and never type it again.

These are a start. They’re suggestions. Ideas. The real power and productivity will come when you start to customize TextExpander to fit your workflow.

Question: What TextExpander macros do you use every day? Share your thoughts in the comments, or on Twitter, LinkedIn, or Facebook.


Colter writes software and blogs about personal growth and productivity. He lives in Silicon Valley (California) with his wife and children, recently took up golf, and watches mostly British TV shows.

Please note: I reserve the right to delete comments that are offensive or off-topic. For more information, see my comments policy.

  • Love this! My favourite was the time appropriate greeting. I added that one along with the special characters. I exported them incase anyone else would like to import them rather than take the time to key them all in. I didn’t include `yes` or `no` as the symbols didn’t show up properly for me in your post (both showing as squares). http://cl.ly/1a450C2c0o0N

    • Thanks, Norm! The yes and no symbols are the unicode emoji thumbs up and thumbs down. What browser are you using?

  • Pingback: Link Mash (December 31, 2015) - Bachya Productions()

  • Dmitry Gavrikov

    Great! Only question – how to use script 4 a greeting appropriate for the current time

    • Good afternoon, Dmitry! I usually use it at the start of emails or IM conversations. I also used it at the start of this comment. Anywhere you would manually write “good morning” or such, use the macro instead. This way, you don’t have to think about what time it is.

      • Dmitry Gavrikov

        Hello. Thnx 4 answer. I don’t understand how to add this script code to Text Expander or is it script for Automator

        • It’s a shell script action. Create a new script, change the content to Shell Script, and paste. Or you can load the script through the link that Norm provided in another comment.

          • Dmitry Gavrikov

            Ok. I got it but it doesn”t work with cyrillic text. Sad. In any case THNX

          • The python interpreter is probably getting confused about what the character encoding is. Try adding “# coding:utf8” as the second line of the script (I’ve updated the post to reflect this). With that line, I was able to have the script generate “?????? ????”.

          • Dmitry Gavrikov

            It’s alive!!!!! Thnx! U r best

  • Pingback: Five Ways to Boost Your Productivity with a Keyboard | Colter Reed()

  • Pingback: How to Get More Done with a Fraction of the Work | Colter Reed()