Keybinding Design, Fast-Repeat Commands

By Xah Lee. Date: . Last updated: .

This page discuss one criterion on the design of keyboard shortcut system: Fast-repeat vs Non-fast-repeat Commands and Keys. This is for designing keybinding for any app that has a hundred commands, such as emacs, vi, 3D modeler, games.

Fast-repeat and Non-fast-repeat Commands

in my keyboarding research, there's a important discovery. Commands can be classified into 2 types:

Fast-repeat and Non-fast-repeat Keys

The Fast-repeat Commands must have keys that can be held down. Here are some examples of repeatable hotkeys: F8, t, Page Down, , 【Ctrl+t】, 【Ctrl+Alt+8】.

Non-repeatable hotkeys are basically keys that involves a sequence: 【Ctrl+x 2】, 【F8 F9】.

So, when designing a keybinding system, one of the principle is for repeatable commands be on repeatable keys, else it's a waste. (because you only have a few precious easy-to-press key spots, yet you have hundreds commands.)

In GNU Emacs's default keybinding, there are many such wastes. For example, all 【Ctrl+‹number›】 and 【Alt+‹number›】 are bound to digit-argument. The digit-argument is a non-repeat command, yet it sits on 20 EASY repeatable keys. (but most damaging is that digit-argument isn't a frequently needed command, with respect to all commands and the relatively few easy-key-spots.)

Another bad example is forward-pageCtrl+x ]】. forward-page is a repeatable command, but it doesn't have a repeating key. Imagine, if every time you need to Page Down that you have to press 【Ctrl+x】 first. You couldn't just hold it down. Another example is next-buffer with key 【Ctrl+x 】.

But remember, this “Fast-repeat and Non-fast-repeat key” is only a supporting criterion in keybinding design. It is not the most important criterion. The single most important criterion in designing a keybinding system is that most frequently used commands be mapped to the most easy-to-press keys. See: Keyboard Shortcut vs Launch Buttons.

Did i $save$ you from getting a brick?

$5 me, at patreon
or paypal to

If you have a question, put $5 at patreon and message me.

  1. Ergo Keyboards
  2. PC Keyboards
  3. Fun Keyboards
  4. Keypads
  5. Do-It-Yourself
  6. History
  7. Design
  8. Layout
  9. Keybinding
  10. Typing
  11. Key How-To
  12. Mouse
  13. Trackball
  14. Trackball History
  15. Misc
  16. Blog