Just enable the compose key and forget all about having to memorize numbers. Just tap [compose][-][-][-] for —, and [compose][-][-][.] for –.
https://raw.githubusercontent.com/mirror/libX11/master/nls/e...
I wish it had interactive dialog box for better discoverability of compose sequences, showing you a list of possible alternatives based on the characters you have already typed.
Besides, there's no compose sequence for snowman, is there?
<Multi_key> <O> <o> : "" U2603 # SNOWMAN
or whatever it is you want, where "" contains a snowman that HN strips. (Depending on your system, you may then need an `ibus restart` or some such thing to have your change picked up.)