on vi Keybinding vs Emacs Keybinding (2013)
Here's a keybinding design for vim, based on ErgoEmacs Keybinding.
- ErgoVim Key Mappings
- By Harrison Ainsworth.
- http://www.hxa.name/articles/content/ergovim-key-mappings_hxa7241_2010.html
At one point in my hand health crisis, i was planning to create a modal version of ErgoEmacs Keybinding .
vi is a great alternative to healthy keys, but, there are 2 major issues:
(1) Due to the modal ways, you have to constantly switch mode. Solution is to make some easy key such as Alt or CapsLock send Esc key signal. 〔see Vim: Remap Escape Key〕
The modal way is actually efficient, and the reason for that is because, half of the time the keys pressed by programers are editing commands, not data entry. (according to emacs key statistics〔see Emacs's Command Frequency〕) This means, for every command call (such as moving cursor or deleting text), you press a single key instead of a key combo, it'd saves you significant amount of finger strain.
(2) vi keys is by historical happenstance, just like emacs.
There is absolutely nothing about it being ergonomic.
Most of its keys are simply mnemonic, like emacs.
For example, $ for moving to end of line (which came from the regex $ for matching end of line.) And the famous vi arrows the {H J K L}, came from the terminal hardware.
〔see History of vi Keys〕
The origin of the choice of H J K L on that keyboard hardware is again by ease-of-implementation, not by design optimization.
A better set of arrows is {I J K L}, forming a inverted T shape.
〔see Arrow Keys. vim HJKL vs Inverted T〕
Solution is to design a ergonomics based modal key mode. So that, the most frequently used commands, by statistics, are assigned to the most easy-to-press keys (such as home row keys). Also, vim has many key baggage. Many commands have more than one keybinding, and there is no consistency. (vimers will claim consistency, but that's more like after-the-fact grafted philosophy.)
But, if you don't type that much as data-entry clerks do, it doesn't really matter. It's good enough. 〔see How Many Keystrokes Programers Type a Day?〕
Also note, the modal way being efficient, isn't out of vi's design. vi happened to be so-called modal, because back in 1980s, you interact with computer by giving a command, then tell the computer to update screen, thus the “command mode” and “insertion mode”. That's why, as late as 2008, in emacs manual, emacs still introduce itself as “real-time DISPLAY editor” — it updates the screen as you type. (see bottom of: GNU Emacs and XEmacs Schism (2001))
xah-fly-keys
- I created a ergonomics based modal key mode.
- Been using it for over a year now. Splendid.
- Emacs: Xah Fly Keys 📦.
on vi vim text editor
- Emergency vim Tutorial
- Vim: Remap Escape Key
- on vi Keybinding vs Emacs Keybinding (2013)
- Programer Hand Pain. vim Escape Key Syndrome (2010)
- History of vi Keys
- Interview with Bill Joy (creator of vi), 1984.
- History of Key Shortcuts: Emacs, vim, WASD
- Arrow Keys. vim HJKL vs Inverted T
- Design of vim Mode Activation Key
- Text Editor's Cursor Movement Behavior (emacs, vi, Notepad++) (2010)
- Vim Keybinding, 30 Years Pile of Shit (2014)
- Ubuntu Linux. vim Location and Versions
- Linux: Ctrl+s Freeze vim
- Microsoft Clippy in Vim
ADM-3A Terminal