Are there any decent yet free TextExpander alternatives for iOS out there?
I like TE but honestly I find $4/mo way too pricey (for my usage level anyway)
Thanks for another great episode, Rose and David!
I discovered that it is, in fact, possible to have multiple lines in a Text Replacement shortcut (i.e. using the functionality built into Mac and iOS). The trick is to copy and paste the text into the With field on a Mac rather than trying to type it into this field.
For example, if I wanted to create a Text Replacement for the following text that expands when I enter xaut22
âŚ
Automators #22: Text Expansion - Relay FM
Text expansion is a simple sort of automation but also a powerful one. In this episode, Rose and David go deep on text automation, the tools they use, and some of their favorites ways to use text automation to get their work done faster.
âŚI could add a new Text Shortcut on the Mac (System Preferences > Keyboard > Text) by typing xaut22
into the Replace field and copying and pasting the above text into the With field.
Typing xaut22
and pressing the spacebar
on either Mac or iOS will expand the text, complete with paragraphs/line breaks.
One caveat is that there appears to be an upper limit on the length of these expansions. Though, I have successfully created expansions with 1,600+ characters and multiple paragraphs.
Iâll continue to use TextExpander for most of my snippets (and appropriately enough even have a TextExpander snippet for âTextExpanderâ), but the built-in text expansion facility is more convenient in some cases, especially for frequently used email text.
You can buy the old version 5, then youâll be eligible for the lifetime 50% discount on version 6. Over time this can make it more affordable.
Oh this is GREAT news!!! I remember specifically trying this many versions ago to no avail. So they must have updated it! Fantastic - thank you for pointing out!
There is also aText, which Iâve extensively used in the past. Itâs basically offering the same functionality than TextExpander without an iOS version for a fraction of the price (4.99$). Itâs actively maintained (not too many functions added over the years, but it has regular updates). I donât know why so few know about the app, as itâs a very complete text expansion app and a very cheap one.
My only complaints about it (and the reasons I decided to switch to TE):
- No iOS version, hence no sync or expansion in the iPad and iPhone
- Itâs basically a ripoff of TextExpander. It has exactly the same functions, and even a very similar UI. I just felt bad, as it seems the developer took TE and rewrote a bit to avoid licensing problems, then released the app. Other text expansion apps have their functions, UI, details that make them unique. aText, if you used TE, feels exactly the same (and it even imports all your TE snippets perfectly).
When I started playing around text expansion, TE was, as for you, a pretty big investment for the use I was going to give it. I got aText and used it for 4 years, but now my usageâs gotten more intensive and TE offers just more to justify the change.
I listened to this podcast and while Davidâs day to day job as a lawyer made TE useful to him, my current text expansion is limited to a few things such as form filling and typing user name in the various websites I logon to. As such, I find that Alfredâs built in text expansion serve my need. However, I like Rosemaryâs \ to trigger the text expansion and will adopt this. Makes more sense as compare to my own special shortcut keyword which sometimes get triggered accidentally.
Youâre very welcome, Andre. Great to hear this was helpful!
Backslash is problematic if youâre a programmer as itâs often used to start an escape sequence e.g. \n and \t.
What I picked up was the use of tab for tabbing between fields in web form. However, my usage will make that relatively rare.
Fortunately I am not a programmer, so I think backslash will still work for me. Weâll see. I thought about using forward slash, but sometimes I use Terminal and thatâs used in directories.
Bad news: Backslash is used to escape a space in filenames - in Terminal.
The choice of initial prefix isnât actually as critical in the ways it is being suggested here. Let me try and give an explanation as to why I believe this to be the case.
The full trigger string is what is actually important, though there is a factor to consider around the prefix which Iâll come to shortly.
To begin with, letâs take a backslash as an initial prefix example. If I need to type in a newline code of \n
, then as long as I donât have a snippet trigger string of \n
for something else, it will trigger just fine. I could have \foo
, \bar
, \quz
, \qux
. None of those are \n
, so none of those get triggered.
Now if I did have \n
set as a trigger then it would be a problem, because as soon as I enter that, along with whatever additional options I may have set (e.g. only trigger before, after a whitespace, etc.), then that string is replaced and I lose it. There could be some mitigation here by further restricting a string to be case sensitive, but thatâs unlikely to safeguard all potential scenarios.
If I had a trigger string set as just \
, that could potentially be even worse, as I could run the strong risk (options above considered) of triggering an expansion it before I even get to the n
.
The things to really watch out for is trigger string overlap.
Letâs say I define two text expansion strings:
-
\foo
is set to expand tofoo-foo-foo
. -
\ooba
is set to expand toooba-looba-do
.
If I want to define a new text expansion with a trigger string of \foobar
, this would never trigger. As soon as I got to the second o
, the \foo
expansion would trigger and Iâd end up with foo-foo-foobar
assuming instant expansion (which is honestly rather unlikely on my devices).
If I then disable the \foo
, Iâd next get the ooba
expansion triggering when I try to type in \foobar
. As a result, Iâd end up with something like \fooba-looba-dor
, and thatâs just gibberish
But the point here is to focus on unique string permutations that do not overlap.
Now back to the prefix. It is quite common to use a prefix for text expansion to make that initial trigger string unique. Now if I wanted to use say home
as some sort of trigger for expanding to produce my home address, that would be great for it being easily remembered and being meaningful to me. But it would be terrible as a choice of trigger as there are many words in the English language that use the letters âhomeâ in that order. Now whitespace in some text expansion apps can be used to help curtail accidental triggering, but given it could prefix or suffix a larger word, that wouldnât help here. Instead this is where a prefix would come into play.
By selecting some character to prefix the string and make it unique enough that it wouldnât show up accidentally in another word (or in fact any string ⌠sometimes extra care with passwords is required regardless of whether apps support password field security options ). Hence I might choose ;home
, \home
, hhome
, or xhome
for example. All trigger strings that Iâm very unlikely to come across in day to day text entry.
Now thereâs one final point on this that might be of note to iOS users and I was pleased to hear get a reference in the episode. Itâs one I really need to get around to sorting out as my naming extensions predate iOS and Iâm now using them (through TextExpander) daily across Mac, Windows and iOS and it isnât as efficient as Iâd like. The issue is quick access to the prefix character. I actually use a suffix character, but my issue remains the same - my choice of character isnât one thatâs quickly accessible from a soft keyboard on iOS.
The result is that it takes extra taps to produce the string when not at a hardware keyboard. Definitely a first world problem, but irritating for something whose sole purpose is to save you keystrokes.
So if you are an iOS user and you want to use a character prefix (or suffix) to your triggers, my advice would be to choose something you can see on your default iOS keyboard layout. Youâll be all the faster for it.
In addition to what youâve covered here, I also disable text expansion (for specific groups in TextExpander) in my IDE and other applications - such as BBEdit and Terminal, which can be yet another way to work around clashing snippets.
I think I heard Rosemary say she has some expansions that start with X. I hadnât thought of that but how many English words have X or even more, Q not followed by U? Qaddr could be a trigger for the address, etc. I know I wonât be typing Q without a U in normal use.
One thing I use is not just hard words or names but one of the companies I deal with in my work is The Boston Tea Party Ships and Museum⢠so I added a snippet for btps to expand to the full name with the ⢠trademark symbol as required by my company. That is one of my favorite uses of Textexpander to add service marks or trademarks or copyright symbols where necessary.
BTW @RosemaryOrchard I was surprised to hear you say you donât normally type âxhâ as âxhrâ is a common abbreviation for âXMLHttpRequestâ.
This post
revolutionised my snippet organisation.
Dot notation seems so logical and is very easy for me to remember.
u.c - ulysses comment
add.h - home address
e.u - university email
d.t - today
d.pz - date in prose, South African (ZA) style e.g. 2 May 2019
etc.
I use JSON, not XML
Is there a good example of the applescript snippet that takes the name of who you are sending a email to?
Try the email episode discussion. I think there are a few variations in there.
Off topic, I know, but xhr can return JSON. As it happens most of my use of xhr is returning localhost-served lists.