February 2022 Software of the Month — Typinator

Another substantial distinction -

TextExpander supports Javascript, Applescript, or Shell Scripts “inline” as part of an expansion.

Typinator supports quite a few more:
Javascript
Applescript
Shell Script
Perl
PHP
Python
Ruby
Swift

1 Like

I also happened to be testing out text expanders, and narrowed it down to a top three: TextExpander, Typinator, and Alfred (mainly because I use Alfred heavily and already had a bunch of snippets in it; I had just never tried auto expansion). I’ve also run through a few others, such as Rocket Typist and aText, but have eliminated them for one reason or another.

I agree with the comment above that much is subjective. TextExpander, for example, has a “nicer” / “more updated” interface. (But I thought, how often will I need to interface with it? The main idea is I don’t… )

In my testing, I have found Typinator and Alfred to be the fastest, which is also kind of the point with such a utility.

But there is one stumbling block I’ve found which has settled me on Typinator.

I have remapped the standard hotkey for Paste. Instead of Command-V, I use Option-Command-V. And I use the standard Command-V for ‘Paste and Match Style’. I generally like this operation much better, in the course of my day (I believe it was MacSparky himself who posted about this tip several years ago).

Well, it turns out that TextExpander and Alfred call the command via Command-V, whatever it is.

It also turns out that certain areas of macOS - like Finder and file dialog boxes - don’t have ‘Paste and Match Style’ available, which means that Command-V fails to operate in these areas, which means that TextExpander and Alfred fail to expand in these cases (1). I’ve emailed with both developers, who say it’s not something that can work (TE did say they would add it to their feature requests). (2)

Typinator, on the other hand, does work in these scenarios. (3) I read something on their site that suggested it operates in different ways. Perhaps they take this kind of thing into account, or maybe just generally call the Paste command differently. I dunno.

This also confirms to me the obvious advantage of Typinator: it’s made for / by power users. Now, even if I only end up using 10% of the strength of a power app, I tend to find it operates that much better for being one.

(Also, side note: I was glad to see that Typinator has been updated practically monthly, over the past year or so. That also speaks to a well supported app, even “just” a utility.)

Anyway, so for me, I’m going with Typinator. Naming files is just too important a use of a text expander for me (eg, adding the date to a file). Or maybe I’m just too married to my alternate key commands… :wink:

(1) By fails, I should say they actually are unable to complete. The abbreviation calls them, they delete the abbreviation, then are unable to complete the paste command.

(2) I’m no developer, so I can’t speak to this. I know these apps often work via Accessibility, and so maybe in those cases are tied to whatever the keyboard commands are.

(3) For what it’s worth, aText also worked for me in Finder, but the app just seems less polished or complete. Someone else (here?) mentioned a lot of crashes too.

[ Edited to clarify that TextExpander and Alfred use Command-V to paste the expansion. ]

4 Likes

Welcome!

Thanks for the comparisons.

Typinator seems to simulate typing, rather than just pasting. The reason I think this is one can insert keystrokes with modifiers in the expansions.

For example, I wanted an expansion to work with selected text, so I defined this (from memory):
{key:⌘C}\parencite{.{key:⌘V}.}
(It actually did more involving the option key and arrows, and backspace.)
So what this does is copies the selected text, types \parencite{ (replacing the selected text), pastes the copied text, then types }.

This posed a problem though. I have text selected, so can’t type characters to trigger the expansion. Except: Typinator has magic keys. So I assigned the trigger to be ⇧ ⇧ ⇧ . So I select the text, press shift three times, and the magic happens.

6 Likes

That is a great example of Typinator as a “power app” - the magic keys help in more ways than one.

2 Likes

Here’s the full expansion:

{key:⌘X}\parencite{.{^}{key:⌘V}.}{key:⌥⇠}{key:2*⌫}{key:⌥⇢}

{key:⌘X} cut the selected text
\parencite{. type this in, {. means type a literal brace
{^} put the cursor here when the expansion is finished
{key:⌘V} paste the text we cut
.} closing brace
{key:⌥⇠} the cursor was sitting at the end of the pasted text, so this jumps back a word
{key:2*⌫} type two backspaces
{key:⌥⇢} jump one word forward

This was to help me convert citations pasted in from a Word document to LaTeX-style citations. It didn’t do all the work, but helped tremendously.

Here’s how it looks in action:

Mar-09-2022 07-44-18

3 Likes

Is it possible to disable expansion/correction in a browser’s address bar, but keep it enabled in input fields?

(I can’t find such option)

Not sure about that specifically, but there is the disable/enable expansion shortcut key that you can set up. You may already be aware of this.

If you’re having problems with expansions triggering in the address bar then consider changing the expansion abbreviation(s) so that characters typically typed into the address bar would not be used for expansions. For example, don’t use : or // or ?= as the lead character(s) in expansion abbreviations.

The latest Typinator update released this week is now Apple Silicon native.

2 Likes

Anyone using Typinator knows if it is possible to import/add new snippets to it in an automated way? I was thinking to pull snippets out of Apple Snippets and push it in Typinator, but does Typinator allow this?

I already do this for Alfred right now as snippets are basically text files in Alfred, so it’s pretty easy.

I believe the answer is “yes”. As stated in the Typinator manual:

macOS text substitution rules: Open System Preferences / Keyboard / Text, click any item in the Replace/With list, type A to select all items, then drag the selection to the desktop. This creates a file named “Text Substitutions.plist”, which you can import in Typinator.

It will also import from TextExpander, TypeIt4Me, aText, and Microsoft ACL files

2 Likes