vi, Emacs, Keybinding Design
fortunatus 〔daniel.elia…@excite.com〕 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.
Try ergoemacs-mode for this. ErgoEmacs Keybinding: a Ergonomics Based Keyboard Shortcut System
Rafe Kettler 〔rafe.kett…@gmail.com〕 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 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 Caps Lock 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.
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.
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.
- Emacs vs vi: How to Compute Keybinding's Efficiency?
- on vi Keybinding vs Emacs Keybinding
- History of Emacs and vi Keys
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, who's 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: Computer 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's 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: Celebrity Programers with Repetitive Strain Injury.
the emacs's keybinding, in my assessment, of all possible keybinding systems one could devise, with the PC 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 “gnu.help.emacs” newsgroup. For previous 2 articles leading to this one, see:
- Emacs Keybinding Rant, and a Glimpse of Xah Lee's Life 2010
- Bad Advice on Typing and Keyboard from Programers