How do I disable smart replacements? (smart quotes, double-dash -> emdash, etc)

Question in subject.

I’m trying to write programming documentation, and in multiple browsers I’m unable to type programming literals in a literal way. Even in code blocks, I’m seeing two dashes being automatically replaced with emdashes (a syntax error, if anyone copy-pastes to the shell), and single quotes being replaced with unicode (closing) smart quotes.

I checked the OS settings, and substitutions are off; I checked the browser’s settings, and substitutions are off there, as well.


Automated curly quotes were breaking some things for me last week, and the automated em dash was breaking things the week before that. I had to copy in the correct characters from a text editor, one instance at a time.