I use text replacement and my iPhone and these are syncing to my Mac via iCloud. But I don't want to use them on my Mac because I use TextExpander. How can I prevent the text replacement on my Mac but keep the text replacement on my iPhone?

Text replacement can be accessed via System Preferences > Keyboard > Text

Below is a screenshot of the text replacement list in System Preferences.

enter image description here

enter image description here

  • This is especially vexing for Spotlight, with no way easily to disable there.
    – 2540625
    Aug 9, 2018 at 5:52

1 Answer 1


To disable this globally on your Mac, you'll use need to use the defaults command(see here for more info). This command only applies to your macOS. Open the terminal(see here if you don't know how to open terminal) and type:

defaults write -g WebAutomaticTextReplacementEnabled -bool false

and to enable it again, you can just switch the last word to true and type the whole thing in the terminal again:

defaults write -g WebAutomaticTextReplacementEnabled -bool true

You can also disable text replacement on an app-by-app basis by having the app open(let's say Safari), then up in the menu clicking the Edit > Substitutions then unchecking Text Replacement.

More information found in this article.

  • Sorry but I’ve unmarked this as answer because, although the text replacement initially appeared to stop, it has now started working again. Any further suggestions as to how to stop it?
    – luciano
    Jul 6, 2018 at 8:28
  • The defaults command is used to edit the .plist files directly(which hold all possible config files for an app) so it should persist after you logout, shutdown, etc. It's odd that it would suddenly revert globally after 20 days. Are there any system changes that happened recently? Updates on an app or OS-level? Pragmatically speaking, if you run the same command above again, does it turn it off like it did before? If so, let me know, and I'll update my answer with a way to run that command automatically in the background so you don't need to worry about it again, i.e. crontab
    – baelx
    Jul 6, 2018 at 15:56
  • 1
    I copied defaults write -g WebAutomaticTextReplacementEnabled -bool false then pasted it into the terminal and hit enter. Then tried text replacement and it continues to work. Any suggestions?
    – luciano
    Jul 6, 2018 at 21:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.