How to make great TextExpander snippets (so that you will remember them)

TextExpander is one of my favorite applications. I use it on a daily basis. Every time I have to work on another computer that does not have my snippets on it, it almost feels impossible for me to get anything done.

TextExpander is also one of these applications that at the beginning you think you will not have a lot of use for. However, when you start making your first snippets and you have experienced the magic of it, you will be hooked. You will get all kinds of ideas and, after a while, you will not be able to live without it anymore. You have been warned :-)

A "drawback" of this is that you will end up with tons of snippets, which makes it hard to remember them all.

Here are a couple of rules that I use to have a consistent way to define snippets. The idea is, if I can't remember a snippet, I type it the way I would define it (i.e., according to my rules). It is easier to remember a couple of general rules than every single snippet.

Here is my approach. Please feel free to copy it. However, I also hope that this blog post inspires you to come up with your own "rules," which fit even better to your workflow.

Doubling the first letter to avoid confusion

The most general rule for me is to double the first letter to make a snippet. Since, most of the words don't start with two of the same letters (beside maybe "aardvark" or Spanish words like "llamar") you can avoid to trigger a snippet without wanting it.

Other people use "." or ";" as a prefix, but this can be an issue if you use TextExpander on your iOS devices, since you would have to switch your keyboard to numbers/symbols to get to the period and semicolon, which is an extra step and defies the whole idea of being faster.

Some people use "x" or "y" to start snippets, which is another clever way.


  • "cch" will expand to "check out"
  • "ddate" will expand to the current date in the format "February 15, 2015"
  • "ddone" will expand to "[✓]"
  • "wwf" will exapnd to "waiting for"

Use "w" for web

I define a lot of times shortcuts for links to webpages. This could be my own homepage, a link to our research group homepage, one for a conference or workshop (e.g. one that we organizing), project homepages, links to download code we share, links to download PDFs of our papers, etc.
You can also use it to define snippets for essential links for new students, e.g., where they can find forms or more information they need. By the way, you can make also a nice snippet for an introduction and information email for new students that includes all the necessary links.


  • "whel" will expand to ""
  • "wuob" will expand to ""

I use a similar approach for my links in my blog posts, which are written in Markdown. I use the prefix "l" for Markdown links.

For example,

  • "ltext" expands to "[TextExpander]("
  • "lalfred" expands to "[Alfred 2]("

Use "(" to put it into brackets

A lot of times I duplicate snippets, add a "(" in front of the snippet and and let the exapned text be in brackets. For examle, "whel" expands to, but "(whel" I define to expand to ( This comes in really handy when writing emails. Here are some examples:

  • "(whel" expands to "("
  • "(sa" expands to "(see attachment)"
  • "(sb" expands to "(see below)"
  • "(wwf" expands to "(waiting for )"

Tip: The last one ,i.e. "(wwf", I use a lot in Omnifocus. For the snippet I use the cursor position trick, i.e., (waiting for %|). This will move the cursor into the brackets right after "for" and before the closing bracket.

Use "[" for email subject labels

A good subject line in an email so important for good communication. People do really appreciate that and using consitantly good subject lines, will let you stick out from the crowd.
I have written about in more details in my blog post "My top TextExpander snippets for emails". The underlying idea is that I define different labels for different projects and catgories. Here are some example how this could look like:

  • "[csoft" expands to "[Conference on Soft Robotics]"
  • "[rx" expands to "[Report on Project X]"
  • "[pcrazy" expands to "[Paper on crazy robots]"

Use "h" for my stuff

For any snippet referring to my personal data like address (private, work), telephone numbers, Skype name, etc. I use the prefix "h" (as in Helmut). You could also use a prefix "p" for private or "my".


  • "htel" expands to my phone number
  • "hadd" expands to my home addreess
  • "hsky" expands to my Skype name

Use lower case and UPPER case

Depending on the context I have to (or I want to) use names starting in upper case. For example, in my work I use terms like "Soft Robotics", "Morphological Computation", etc. However, depending on the context, e.g. in less formal emails, I write them also as "soft robotics"and "morphological computation."
Similarly I use acronyms of our projects sometimes in upper and sometimes in lower case. While grammatically it is correct to write it with upper case (if it is a real acronym), in emails sometimes it looks like if I would constantly screaming the word.
My solution is to define two different snippets.


  • "mmc" expands to "morphological computation"
  • "MMC" expands to "Morphological Computation"

You could also just make the first letter in upper case for the snippet, but for me it is easier and faster to keep my finger on the shift button.

Make sure that you switch on "Case Sensitive" for your snippet (see screenshot below).

Use "tz" to define time zones

I use the prefix "tz" to define snippets for time zones. I use that mostly to setup meetings in Fantastical, which is capable of understanding time zone related abbreviations and expressions like CET, JST, or GMT-3. However, I have a hard time to remember the exact time differences between my place and people I am collaborating with or their time zone abbreviations. Therefore, I define snippets (starting with "tz") to "translate" places into time zones. For example, "tzboston" translates into "EST" or "tzjapan" into "JST".

I have previously written about that on my blog post "How to deal with time zones". I suggested there to use "@" as a prefix. However, if you want to use it on your iOS devices as well, you should changed it to "tz".

> Tip> : If you have a lot of Skype meetings, for example, with Bob from Bosten you can set up a whole TextExpander snippet like > "meeting with Bob on %| at EST /work"> .

Use "f" for full names and for file naming

This prefix has two uses. This is not the optimal solution, but it has been developed historically and so far I have not ran into any problems. First, I use it to abbreviate long, complicated and mostly foreign names and, second, I use it for everything that is related to file naming.

  1. Abbrevation of names: I have written about that in a previous blog on "My top TextExpander snippets for emails". For example, you can use "frob" to expand it to "R. Daneel Olivaw".
  2. File naming: Having worked a lot in Linux based systems I am used to avoid spaces in file names. For example, if I want to add a date to a filename I use "fdate", wich expands into the current date into the following format "YYYYMMDD"(e.g., 20150215). Note that if I add a date in a normal textfile I would use the "ddate" snippet, which expands in to "month DD, YYYY" (e.g., February 15, 2015).
    I use it also the "f" prefix for my snippets to name consistently my files in my paperless workflow. This makes it much easier for Hazel to identify the right files to act on them (e.g., to sort them into the right subfolders).

Use "e" for email

I have multiple emails. One for the job, one for my blog, another for my private communication and a couple of special accounts set up to avoid spam. I have defined for all of them snippets starting with "e".

  • "ework" email of my work
  • "epriv" for my private email
  • "eblog" for my blog email (
  • "espam" or "efake" for extra accounts

Use "." for more complex snippets with fill-ins

This goes against my previously mentioned rule not to use a period, since it makes it more complicated to use it on your iOS devices. However, it is reserved for more complex snippets using fill-ins (this is a really nice feature of TextExpander that allows you to fill in information when you expand the snippet) – so I don't use it normally on my iPhone.

I use these snippets for email templates (starting with "e."). If I have multiple email templates for a specific project I add a prefix to identify it. For example, to invite people to participate in a conference on Soft Robotics ("sr") I would define an invitation email template with a fill-in field for the name of the person. The snippets abbreviation would be then "sr.invite".
I have also used this idea to define email templates to organize a whole e-book ("eb").

  • "eb.invite" to invite people to particpate
  • "" to communicate the review results
  • "eb.remind" to send out reminders
  • etc.

Another use is to write an email response for job applicants "e.reject", for example, if you currenlty not looking for somebody. I use it also to expand a whole layout for minutes for a meeting. The snippet I call with ".meet" (see screenshot).

Use "cite" for predefined citations

If I want to refer to a paper in an email (or during a Skype meeting via the chat mode) I use TextExpander snippets. The results is a nicely formatted citation that, if available, even includes a download link.
The trick is to format it nicely so it fits with your email default font. For that you will have to make sure you enable the "rich format" for your snippet (see screenshot)

In addition, I always duplicate my citation snippets, start them with "ncite" (n stands for numbered) to have a version of the citation with a fill-in part that allows me to add a number.

The different results of the two versions can be seen in the next screenshot. The first one has been done with the standard "cite" snippet, while the second one has been produced by the "ncite" snippet, where I have chosen 1 for the number:

I have written about that in more detail in a previous blog post called "My top TextExpander snippets for emails".

Use "k" for special keys

I use "k" as prefix for special keys (special letters) like , , or and £. In the similar manner I define a snippet called "k3" to get "⌃⌘⌥". You could also use "s" (symbol) as a prefix if that seems more logical to you.


  • "kcmd" will change into "⌘"
  • "kopt" will change into "⌥"
  • "keuro" will change into "€"
  • "kdown" will change into "↓"
  • "kleft" will change into "←"

Let me know about your tricks in the comments! How do you name your snippets?

Work smart, be remarkable, and have a great day!