This post is obsolete; the $.keymap has changed significantly. Documentation is now at http://bililite.com/blog/2015/01/12/rethinking-keymap/.
I've been playing around with creating an online editor, and one thing it needs is keyboard shortcuts. Control keys and the like don't register keypress events, so I have to use keydown to get the event.which (and I have to use jQuery to normalize that across browsers), and then I have a random keyboard code and a bunch of modifier key flags to work with. The W3C once tried to rationalize all this, but no one picked up on it. So I wrote a jQuery plugin to turn the event into a friendlier string (using a notation based on Microsoft's sendkeys). Thus:
- Pressing the 'a' key gives
$.keymap(event) == 'a' - Pressing the 'a' key with shift held gives
$.keymap(event) == 'A' - Pressing the 'a' key with control held gives
$.keymap(event) == '^A' - Pressing the 'a' key with alt held gives
$.keymap(event) == '%A' - Pressing the 'a' key with control and alt held gives
$.keymap(event) == '^%A' - Pressing the 'Esc' key gives
$.keymap(event) == '{esc}' - Pressing the 'Esc' key with shift held gives
$.keymap(event) == '+{esc}' - Pressing the '*' key on the numeric keypad gives
$.keymap(event) == '{multiply}' - Pressing the '1' key on the numeric keypad with control held gives
$.keymap(event) == '^{1}'
keydown events’ » 