MathCurvesSurfacesWallpaper GroupsGallerySoftwarePOV-Ray
ProgramingLinuxPerl PythonHTMLCSSJavaScriptPHPJavaEmacsUnicode ♥
Web Hosting by 1&1

Keyboard Shortcut Design: Repeatable vs Non-Repeatable Commands and Keys

Xah Lee, ,

This page discuss one criterion on the design of keyboard shortcut system: Repeatable vs Non-Repeatable Commands and Keys. ⁖ as applicable in designing keybinding for emacs, vi, 3D modeling app, or any app that has hundreds commands that needs to map to keys.

Repeatable and Non-Repeatable Commands

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

Repeatable and Non-Repeatable Keys

The Repeatable Commands must have keys that can be held down. Here's example of repeatable hotkeys: F8, t, ⇟ Page ▽, , 【Ctrl+t】, 【Ctrl+Alt+8】, ….

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

So, when designing a shortcut 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 key spots, yet you have one hundred commands in common use.)

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 ▽ that you have to press 【Ctrl+x】 first. You couldn't just hold it down.

But remember, this “Repeatable and Non-Repeatable key” is only a supporting criterion in keybinding design. It is not the most important criterion. The single most important criterion in designing a keyboard shortcut system is that most frequently used commands be mapped to the most easy-to-press keys. See: Keyboard Shortcut Design: Dedicated keys, Special Buttons, Extra Keys.

blog comments powered by Disqus