As a programmer I am always typing in weird words like Hyperledger, JUnit, and assertAll (don’t ask).
Yet, my Mac likes to correct these words to hyper ledger (fair enough), unit (hm, okay) and assertable (whoa).
TL;DR Go to System Preferences > Language & Region > Keyboard Preferences > Text, and uncheck “Correct spelling automatically” and “Use smart quotes and dashes”.
Plus, when I write doc, often times I’m showing you how to use program options, many of which begin with “–” (as in –version). And this gets corrected to a single, long dash.
So, I Googled a bit and found out how to turn this off. For good.
Go to System Preferences, then choose Language & Region. Click the Keyboard Preferences… button, then choose the Text tab. You will see a dialog like this (I’m running MacOS 10.12.6):
Make sure “Correct spelling automatically” is unchecked. That will stop the constant autocorrecting. Then uncheck “Use smart quotes and dashes” and your — will stay a double dash.