Along with many extensions into Emacs, have many keystroke is used, and always forget the keystroke when have too many. This package is for fix above problems. One Key provide a handle with TOP keystroke, and then when you type TOP keystroke, you will get a keystroke menu with pop-up window, and will show a group keystroke in pop-up window. Then you just type keystroke in window show, you can execute command corresponding. So you need just remember the TOP keystroke with group command. Others keystroke notify will display in pop-up window. * Quick use: When type "C-c p" will popup window and list keystroke menu. Then you just type special keystroke that list in menu, you will execute corresponding command. That's all. And now you don't need remember so many keystrokes, just remember TOP keystroke is enough. * Advanced use: ** The format of menu list: (("KEYSTROKE" . "DESCRIBE") . COMMAND) Example: Define one-key function `one-key-menu-foo' (one-key-create-menu "FOO" '( (("Keystroke-A" . "Describe-A") . Command-A) (("Keystroke-B" . "Describe-B") . Command-B) (("Keystroke-C" . "Describe-C") . Command-C)) t) Then call `one-key-menu-foo' for test. ** The argument of function `one-key-create-menu': `title' is the title of menu, any string you like. `info-alist' is a special list that contain KEY, DESCRIBE and COMMAND. see above describe about `example-menu-alist'. `miss-match-exit-p' is mean popup window will exit when you type a KEY that can't match in menu. `recursion-p' is whether recursion execute `one-key-menu' self when no KEY match in menu. `protect-function' is a protect function call last in `one-key-menu', make sure this function is a `interactive' function. `alternate-function' is alternate function execute at last. `execute-last-command-when-miss-match' whether execute last input command when keystroke is miss match.