Emacs: Xah Fly Keys History

By Xah Lee. Date: .

Here's the history of why i created Xah Fly Keys.

  1. I'm a QWERTY typer since ~1987 on a typewriter.
  2. Switched to Dvorak in ~1994.
  3. Started to use emacs in 1997.
  4. Live in emacs since 1998.
  5. Use emacs in text terminal only, and default GNU emacs keybinding, from 1997 to 2006.
  6. Started to experience RSI discomfort a few times since 2005, first time due to using laptop exclusively for 2 years.
  7. Created ergoemacs mode in 2007. (joined by David Capello (https://davidcapello.com/) and since 2013 the project is lead by Matthew Fidler)
  8. Created Xah Fly Keys in 2013. Going modal.

[see Xah Lee's Typing Experience and RSI (Repetitive Strain Injury)]

I always regarded the vi modal ways a hack of the hack of the unix lineage. [see History of vi Keys] I'll never touch it. But starting in 2010, i had lots thoughts about keyboard efficiency, and it occurred to me the modal way is actually more efficient, for programers.

The reason is, that on average, ~50% of key-strokes of programers are actually not data-entry (that is, 50% are actually {moving cursor, copy, cut, delete, indent, switch buffer, open/close, completion, etc}.) [see Emacs: Command Frequency Statistics] That means, if using modal ways, 50% of the time you don't have to press key combinations to execute commands, just a single key for each command. So, the 50% of time when you call commands, each command you save about 1 key-stroke, so in total you save about 50% × 50% = 25% of key-strokes. The trade-off is that you have to constantly switch command/insert modes, which means adding a key stroke every time you do so. In the end, i estimate that modal keyset saves you about 10% of key strokes.

I've been wanting to create and experiment with vi modal ways since 2010. While there's viper-mode (which is a vi-emulator) and there's evil-mode (which is based on vim (a more advanced vi)), but their key/command choices is largely historical, not a clean design based on efficiency.