My understanding is that Vim cannot differentiate between
<c-[key]> because they map to the same ascii code. And also the same reason why
<c-i> is equivalent to
<tab>. Similarly, you can't map
<c-;>, etc. because there is no ascii representation.
I've read some people say this restriction is fine since it's more ergonomic to avoid chords/modifiers in favour of words anyway (eg. with leader key). But some operations are just more appropriate for chords/modifiers (like things that you're likely to repeat with)
What I'm asking is why was Vim designed like this in the first place? Or why, since Vim is open source, there is no build of Vim or GVim that has added support for this? It seems a shame for an editor that is so ridiculously customizable to limit itself this way. Can anyone explain this to me?