As an Asian Efficiency reader you are mostly likely someone who spends a lot of time behind a computer keyboard. We are of the notion that if you do spend a lot of your time on a particular activity, you should explore options on being more efficient at it. If you spend a lot of time reading books, you might as well learn speed reading. Likewise, most knowledge workers spend a lot of time behind a keyboard, so they might as well be well-versed at using it. In this article we will show you how text expansion can make you more effective.
What is text expansion?
In short, text expansion software, such as TextExpander, allows you to type shortcuts or abbreviations and the software will substitute that with the desired text. For example, instead of typing “I hope to hear from you soon!” you could type “ihope” which TextExpander can automatically replace with the former sentence. You can customize your own abbreviations so that you can type faster by using less keystrokes. The predefined text that will be used for substitution, or snippets as they are called in TextExpander, will save you hours of typing every week.
Previously we have covered keyboard shortcuts that can make you more efficient and there was a hint at the end of using text expansion software. This will be the follow up on that. In this article I’m going to use TextExpander by Smile Software, a popular text expansion software for the Mac, to show you how it can make you more efficient. I highly recommend you try the trial of TextExpander and play around with it. This guide will help you get started.
Setup and Settings
Let’s assume you just installed TextExpander. The first thing you want to do is configuring it properly. The default settings will be fine for most people, but here are screenshots of some my settings that are relevant:
The next thing is organizing your snippets. As of now you will have a couple default snippets that came with TextExpander, but you will most likely get rid of them or customize them. What is neat about TextExpander is that you can organize your snippets with folders so you can group similar snippets. I highly recommend you setup the following folders:
- General – your general repository of your snippets.
- Tmp – This is where you will put temporary snippets or snippets you want to test.
- Symbols – Place for all your snippets you will use for special characters and symbols.
- Messages – Any snippet that you use for emails or any form of online messaging.
- Contact – Great for when you have a lot of different contact info.
- Code – Snippets of code go in here (for you developers and programmers who read this).
They will make more sense as you create more snippets and when I show you a couple that I use. You will thank me later for setting these up. Once you have 25+ snippets, it will be a blessing to have them organized nicely into groups.
Your First Snippet
Now that you’re setup, let’s create your first snippet. It’s going to be a very simple one: whenever you type “sig” it will substitute it for “-Thanh of Asian Efficiency”. Not that it is my signature, but this is just for illustration purposes.
This is how you setup the snippet. First, select the folder you want to save your snippet in. In this case it will be the tmp folder. Next press the “new snippet” icon to create a new snippet. The following screenshot explains how snippets work.
Note the following:
- You can set different types of snippets but for most cases you will use the plain text option.
- This is the body where you will put the snippet in.
- The label is the handle you want to give to your snippet. This not the actually abbreviation used for typing, but to make it easy for you to know what the snippet does. Make sure this is descriptive.
- This is the actual abbreviation you will use for typing. I always keep the default option of case sensitive.
- This is where you can find macros. These will be explored later in the article.
Now that you have setup your first snippet, type “sig” (without the quotes) and you should see now that it works.
Prefixes
Before I introduce any snippets, I want to show you how I use it which is a little different than how most people use it. I like to use prefixes, meaning I use special characters at the beginning of my abbreviations. This makes it easy for me to memorize snippets, but your mileage may vary. Here are my prefixes:
- ; (Frequently used shortcuts)
- # (Phone numbers)
- ! (Addresses)
- . (Symbols)
So for the previous example of “sig” I would use something like “;si” or “;sig”. Just because I like to use prefixes does not mean that you have to do it too. To me they just make sense (I used to be a programmer, maybe that explains it). The other prefixes will make more sense as you see them below. But let’s dive into the snippets, because that’s what you came for right?
TextExpander Snippets for Every Day Use
The best way to get the most mileage out of TextExpander is to populate your snippet library slowly over time. There is absolutely no rush to fill it up; let it grow organically. Below are examples of TextExpander snippets you can use for every day use and that will help you get started.
Phone numbers and addresses
I have a lot of different phone numbers due to my traveling and my numerous Skype numbers so that some people can call me at a cheap rate (wherever I may be). There is no way I can memorize all these phone numbers so that’s where I have TE help me. For phone numbers I like to use the hash tag (#) as my prefix and then the country code as per their TLD. So #uk would mean my UK phone number, #nl my Dutch number, and so on.
For my addresses I like to use the exclamation (!) symbol (I tried the @ sign but it’s problematic when you write a lot of emails) and then the country TLD too. So !nl means my Dutch address and !us means my US address.
Paste without style
I’m going to show you more about how to use special variables, or some people refer to them as macros, in TextExpander but to get you started I’m going to show you one of my favorite and most frequently used snippets.
Every day I need to copy-and-paste text but it nags me when I paste something and the styling remains as the original. In most cases I don’t want the original styling (especially when you’re copying text in i.e. MS Word or Pages). The workaround is to open a text editor, paste the text in there (so the formatting is removed), copy all of that and then paste.
That’s so inefficient.
A quicker way is to use a built in shortcut in OS X, which is SHIFT+CMD+OPTION + V which will paste anything without the formatting. That’s a little faster than the above. The downside is that it’s an awkward shortcut to use with your fingers and I have a hard time memorizing it. Fortunately, there is a quicker solution with TextExpander. It comes with a variable that contains whatever is in your clipboard: %clipboard.
By setting up the following snippet, all you have to do is copy the text you want (so it’s in your clipboard) and then use the snippet’s abbreviation to paste it so the styling is removed (because the default styling of snippets is plain text). Sweet huh?
Stock email responses
If you have to send out a lot of canned email replies, you definitely want to shortcut this with a snippet. Save often used emails in TE. From my experience, this will save you a lot of time. Later on I will show you how you can make those emails look custom tailored to the recipient with some neat tricks (hint: it will involve inputting variables throughout the email).
Lorem ipsum
Any web developer, or anyone who makes websites on a regular basis, will be familiar with the lorem ipsum text to fill up a web page with content. This is another great snippet to have.
Journal template
We’ve talked before about the importance of journaling where at the start and/or end of the day you ask yourself important questions to answer. I highly recommend you create a snippet with all the questions you want to address. Here’s mine:
Common symbols and special characters
If you work with a lot of symbols or special characters, you need snippets for them. Using the mouse and inserting symbols or special characters is way too slow. For symbols I like to use the dot (.) as a prefix. Here are some I use, but I recommend you set up the ones you use the most:
- .eur = €
- .gbp = £
- .™ = ™
- .rr = ®
Verbs for tasks
As a reader of Asian Efficiency, we assume you use a task manager (such as Omnifocus) and use the best practice of starting of your tasks with verbs (see tip #5). You can shortcut this with abbreviations too:
- ;wf = “Waiting for”
- ;rp = “Respond to”
Populate this with your own verbs and style.
URL parameters
Anyone who regularly needs to tweak URLs to include certain parameters knows it’s tedious to type them. Memorizing all these variables and typing in those ampersands is tedious. This is another opportunity to shortcut your keystrokes with TE.
Ninja snippets with Macros
At this point you should have the basics down of getting abbreviations substituted with something else. Just implementing the snippets above and with some of your own will make you a lot more efficient. But, we can go a step further.
Fortunately, TextExpander has some extra features that can make text expansion look sexy. I have to warn you though, once you implement some of these you won’t be able to live without TE anymore and you will hate working on other people’s computers that don’t have TE. You have been warned! With that little disclaimer out of the way, let’s kick it off with introducing macros in TextExpander.
As you’ve read earlier, TextExpander comes with a couple variables or macros that you can use. A simple one was the snippet for pasting without any formatting that used the %clipboard macro.
Macros are very easy to use. Whenever you create a snippet, near the bottom of TE you will see this icon:
This will open up the macros list and show you which macros you can use. For example, you can see below a screenshot of the macros for dates.
Just selecting one will have TextExpander automatically insert them into the snippet. I’ll show you how powerful they are as we build out an email that will be customized. Let’s picture a scenario where you have to reply to a lot of inquiries about a specific product. The email responses tend to be the same, but you want to customize parts of the email because some of them are subject to change. Here is the draft of the email:
Hi NAME,
As of today (TODAYS_DATE) the products have been sold out. They will be available again exactly 3 weeks from today (3WEEKS_DATE). The price will be $PRICE and the shipping will cost $SHIPPING.
NAME, I hope you will still purchase the product by then.
Regards,
-Jessica F.
The capitalized words are meant to be placeholders, or variables, that will be substituted. So in this email we still need to replace the name, today’s date, the date that is three weeks from today, price and shipping cost. I’ll show you how TextExpander can make this very easy.
Cursor positioning
Let’s make this email into a snippet that’s easy to use. You can copy-and-paste the above email verbatim and use that as a stock response, but each time you use it you will have to move your cursor around and replace the placeholders with something else. For example, you need to move the cursor back to replace the name of the recipient twice. Fortunately, TextExpander has a macro so you can decide where the cursor should be after the snippet has been called. This is the %| macro which means “place the cursor here after the snippet has been used”. So this becomes the revised email.
Hi %|,
As of today (TODAYS_DATE) the products have been sold out. They will be available again exactly 3 weeks from today (3WEEKS_DATE). The price will be $PRICE and the shipping will cost $SHIPPING.
NAME, I hope you will still purchase the product by then.
Regards,
-Jessica F.
In this case I still have to move the cursor the change today’s date, the date three weeks from day, price, shipping cost and again the name. Fortunately we can make this process a lot easier.
Today’s date
TextExpander comes by default with a snippet that shows today’s date (type “ddate” to see it). That in itself is pretty cool but you will most likely customize this. Depending where you are located, you will use the date format differently. In the US it’s common to start with the month whereas everywhere else it’s common to start with the day.
Let’s improve this email with some macros to substitute the dates. The first one is today’s date. You can specify it in different formats, but to not confuse anyone let’s use the three letters of the month and the numeric day.
Here’s the new email:
Hi %|,
As of today (%b %d) the products have been sold out. They will be available again exactly 3 weeks from today (3WEEKS_DATE). The price will be $PRICE and the shipping will cost $SHIPPING.
NAME, I hope you will still purchase the product by then.
Regards,
-Jessica F.
Another date we need to put in is today’s date (which changes depending when you use the snippet) and then exactly three weeks after that (t+21). It’s kind of a silly example, but it will help get the point across that you can manipulate dates with TextExpander.
In order to automate this, you need to use the “Date / Time Math” selection.
In this case, we need to add 21 days to today’s date. Select “Add day(s)” and TE will insert a macro: %@+1D.
%@ signifies a macro for date maths with the plus sign meaning addition. Replace that with a minus (-) and you get subtraction. The capital D means the days you want to add. The digit between the operand (add/subtract) and the time unit (year/month/days/etc) will be used for the calculation. By default, TE will use one. We have to change this to 21. What you have to remember is that now you have to add the macro formatting of how you want to format that newly calculated date. Just using %@+21D will not output anything. We will use the same macros as for today’s date and this is how the new email looks like:
Hi %|,
As of today (%b %d) the products have been sold out. They will be available again exactly 3 weeks from today (%@+21D%b %d). The price will be $PRICE and the shipping will cost $SHIPPING.
NAME, I hope you will still purchase the product by then.
Regards,
-Jessica F.
This new email will now show correctly the date three weeks from today.
Multiple inputs and variables
We are almost done with the email. Now we need to be able to insert manually a price of the product and a quote for the shipping cost. Of course, by now you should know that we’re not going to use our mouse and cursor but we will have TextExpander help us. In this case, let’s assume the price changes frequently and the same goes for the shipping cost.
What we can do is each time we use this snippet, TE will ask us for the price and shipping cost, and insert them into the snippet. How cool is that? We can do this with the %fill macro.
The format of the macro looks like this:
%fill:label%
You can substitute “label” with anything you like, but give it something descriptive (without any spaces). This is the final email template with the fill-in macros.
Hi %fill:name%,
As of today (%b %d) the products have been sold out. They will be available again exactly 3 weeks from today (%@+21D%b %d). The price will be $%fill:price% and the shipping will cost $%fill:shipping%.
%fill:name%, I hope you will still purchase the product by then.
Regards,
-Jessica F.
Did you notice I removed the cursor macro with a fill-in macro? And the macros for price and shipping? When you use this snippet, you will get a popup where you have to fill in the details:
As you can see, the name is being displayed twice because it’s used twice in the email template. This fill-in macro is really useful and I highly recommend you play around with this. It has saved me many hours by now and it has made my templates look very personalized (which an effective communication method).
That wraps up this guide to using TextExpander. If you implement all of these tips and tricks in your snippets you’ll be without a doubt more efficient. Let us know in the comments below if you have any cool snippets to share!