vi, Emacs, Keybinding Design

By Xah Lee. Date: . Last updated: .

fortunatus [daniel.elia…] wrote:

You must be a Windows user. You must also not be an Emacs power user, because you think it's acceptable to use the arrow keys as cursors. If you don't, please use C-b, C-f, C-p, and C-n in place of the arrow keys. It dramatically improves speed.

Those are not efficient. Better is holding Alt with thumb and press inverted T on home row.

See: Why Emacs's Keyboard Shortcuts are Painful

Try ergoemacs-mode for this. ErgoEmacs Keybinding: a Ergonomics Based Keyboard Shortcut System

Rafe Kettler [rafe.kett…] wrote:

Don't go down that path: "vi" has a way-better key binding for cursor movement!!

it should be noted, that vi's h j k l is not optimal. Better is


in inverted T shape. See: Arrow Keys Arrangement Efficiency: vim HJKL vs IJKL

also, note that vi's Escape is the road to Repetitive Strain Injury. See: Programer Hand Health: vi Esc Key Syndrome .

You should remap CapsLock to send Escape. See: Vim: How to Remap the Escape Key?

also note, emacs keys and vi keys, are not out of much conscious design. Like unix tool bags, they are piled-on over the years without much thinking. It was good enough, at the time. In fact, most things in life are like that. They are not anywhere close to optimal in any sense.

Daniel Weinreb, co-founder of Symbolics, alludes to why emacs keybinding is the way they are. [see Daniel Weinreb on Emacs Keybinding]

Xah wrote:

Emacs's default cursor moving shortcuts are Ctrl+f, Ctrl+b, Ctrl+n, Ctrl+p. The keys f, b, n, p are scattered around the keyboard and are not under the home row.

Daniel wrote:

That's true. At the time Guy Steele put together the Emacs default key mappings, many people in the target user community (about 20 people at MIT!) were already using these key bindings. It would have been hard to get the new Emacs bindings accepted by the community if they differed for such basic commands. As you point out, anyone using Emacs can very easily change this based on their own ergonomic preferences.


This “design” by evolution applies to Keyboard hardware itself. As it is, it's the worst possible. It was good enough in the 1970s, where there are just a handful of programers in the world. And today, but vast majority of people (mom and pop, who occasionally chat online or write email), it's good enough! Even for most programers, whose finger actually dance on keyboard perhaps no more than accumulated 2 hours a day, it's good enough! But for data entry clerks, or programers who seriously type a lot or write docs all day, it's hello RSI. That's why we have so many problems on keybinding debates, radical input device designs, Dvorak advocacy, and RSI is a serious medical problem. See: Keyboard Design Flaws .

this also applies to key layouts. For example, we all know the story of QWERTY and Dvorak. But in my study, i found that it is just not that. Most international layout are ergonomic garbage. See:

also note, in the programing industry, if there is one software that induces most cases of RSI, it is emacs, by far.

[see Famous Programers with Repetitive Strain Injury]

the emacs's keybinding, in my assessment, of all possible keybinding systems one could devise, with the computer keyboard as given constraint, i rate it near the bottom. Better than random assignment, but not much.

One thing damaging is that GNU Emacs has a tendency to refuse change, much like most unix-bag. Emacs's keybinding today is pretty much identical to emacs of 1970s. But, the landscape of computing has changed tremendously in past 30 years.

This article is originally a post in “” newsgroup. For previous 2 articles leading to this one, see: