It’s like kids these days never used VI from a terminal that lacked an escape key!
They’ll get the opportunity with the new MacBook Pro! Maybe that was the intent all along?
Why is it like that? I’ve known a bunch of special control code key combos for a long time, but I didn’t know why they were mapped that way.
If you’re asking why the control characters have the codepoints they do, I’m not sure there was very much reason for it. At least in the case of ^C, I suspect the mnemonic (“cancel”) might have come before the official assignment, but I’m just guessing. There were a variety of ad-hoc practices before there was an ASCII standard, and I’m sure the committee’s main goal was to formalize them.
I suspect that if information on the decisions of what control characters to include exists anywhere, it’s in old meeting minutes somewhere. https://en.wikipedia.org/wiki/ASCII#History has a good run-down of relevant standards bodies. This would be going back to the early 60s, so it’s a job for a professional historian, not an amateur.
I meant “why do you think people who used vi without an escape key would know anything about ascii codes, rather than just knowing ^m == CR, etc.”
I’d write a lengthy comment, but I’m feeling really old right now where this is some amazing discovery. </curmudgeon>
Now I know what I want for my birthday … ASCII printed in 4 columns on a large poster to hang over my monitor. This shit is art.
I think it’s interesting that the letters start on …0001, but the numbers start on …0000. I can see that representing 0 with a char that ends in zeros would be convenient for when you’re implementing printf - it means you just do some bit munging once you’ve split your integer into decimal place-values. But I can’t think of any particular reason to make the letters start at 1.