Does this mean that ^; and ^{ are also equivalent to ESC?
iTerm2, in vim 1.8
Control-@ is 0.
Control-A is 1, through control-Z is 26.
Control-[ is 27, escape.
Control-\ is 28.
Control-] is 29.
Control-^ is 30.
Control-_ is 31.CTRL does not actually modify the character code sent from the keyboard. For letters, the same keycode (which maps to ASCII with a constant addition of 0x3D) is always sent. Another byte in the HID report contains bit flags for modifier keys (L/R CTRL, SHIFT, etc); the OS decides what happens after that.
Note that this holds under USB HID.