How can I use text substitutions without having to type a space?

I have some custom text substitutions set up in the Language & Text pane of System Preferences. But in order to activate a substitution, I have to type the shortcut and then press the spacebar. This results in the replacement text followed by a space character. So if I want the text to be at the end of a text field when I submit a form, for example, I have to type "[shortcut]space" instead of just "[shortcut]".

Is there any way to make the replacement instantaneous, so I don't have to insert and delete a space that I don't want?


I don't have this issue, pressing the enter key also works instead of space.

I created a custom Text Substitution in Language & Text, then opened TextEdit and it worked on any key press, not just space or enter.


The closest thing to doing what you’re after without using additional software, is to create a custom keyboard layout. You can map a single key or a key combination to any string you want.

For example, using my custom QWERTY layout, I can type + O to get ಠ_ಠ (instead of ø, which I never used).

It’s not really “text replacement”, but it’s a solution nevertheless. Also, I found that keyboard shortcuts work much faster than text replacements, once you get used to them. Another benefit of this solution is that it works in all applications, while text substitution only works in Cocoa apps.


Related: Text expansion for Mac OS X Lion?

TextExpander and DashExpander meet the requirement.

In TextExpander I have macros that are expanded without keying space, return or enter.