Xah Lee, 2007-07, …, 2011-04-17
Emacs's default keybindings are very ergonomically painful, for several reasons. (For detail, see: Why Emacs's Keyboard Shortcuts Are Painful.) This page shows a emacs package that makes your emacs use a new shortcut set. This shortcut set is designed based on ergonomic principles, based on emacs's command call statistics, similar to how Dvorak Layout is designed.
| ←w | →w | prev/next word |
| ←¶ | →¶ | prev/next paragraph |
| |← | →| | beginning/ending of line |
| ⌫w | ⌦w | delete prev/next word |
| |⌫ | ⌦| | delete to beginning/end of line |
| ▲ | ▼ | page up/down |
| |◀ | ▶| | beginning/end of file |
| isearch← | isearch→ | isearch previous/next |
Layout image with Dvorak key labels: ErgoEmacs Keybinding Dvorak.
ErgoEmacs keybindings v5.3.9 (Released on 2011-04-17, tested with emacs 23.2.1.)
To install, just follow the easy steps in the package. Release notes is also in the package.
Release note: Source ergoemacs.googlecode.com
Older versions, for emacs 22 or emacs 23:
These older versions are provided for whatever reasons people might want them. You shouldn't use it unless you have good reasons. The 4.3.x versions are simple settings of global keymap, not a minor mode. The 5.3.x version is a minor mode.
Here's the outline of how this design is arrived.
Statistics of emacs commands are compiled from emacs users, and are listed by frequency of use. The top about 30 ones, are given a keyboard shortcut.
To assign the key position, the following rules are used. The rules are listed roughly in order of priority:
The design is based on finger positions, not on first letter of command names. The shortcut set is the same for QWERTY and Dvorak. The ease of remembering what commands are on what keys are based on grouping and positioning. For example, cursor movings are all right hand, text changing are all left hand, moving or deleting to the left/right have keys that are place left and right together, and similar for up/down (by screen or to beginning/end of file). Undo, Cut, Copy, Paste are the familiar row Z X C V.
In this design, only the 【Alt+‹key›】 space is used. Some Alt+Shift is used too. 【Ctrl+‹key›】 space is not used except 7 standard keybindings (Open, Close, Save, Save As, Print, Select All). The operation and consistency of emacs are not affected.
David Capello rewrote this package into a full-featured minor-mode starting with version 5.0.0. (2009-09).
Thanks to many other people who helped in code snippets or suggestions. Please see the package's header for a full list.