completely replace emacs one thousand keys, part 2.5
a few months ago, i started to design a keybinding set that completely replaces the entire emacs 1k+ keybinding.
i've been using it for a few months now. I want to publish it nicely, but just haven't got to it.
so, am just pushing it out as its current state, here: https://github.com/xahlee/xah_emacs_init/blob/master/xah_emacs_keybinding.el
again, i'm pushing out in its current chaotic state, hoping some keyboard hackers will pick it up, in case i never do.
to use it, you need:
- is a emacs lisp hacker.
- is a keyboard fanatic.
- it is currently for dvorak. so, if you are not using dvorak, you'll need to remap yourself.
- the code is not nicely packaged up into a lunchbox. (but, it's not complicated neither. it's very simple)
here's a bit detail to help along:
there are 2 types of command: fast-repeat command and none-fast-repeat command.
the fast-repeat commands are moving cursor, delete characters, etc, where it makes sense to hold down a key and have it repeat. Typically, in emacs, there are 20 to 30 fast-repeat commands.
vast majority of emacs commands are non-fast-repeat. e.g. open file, switch buffer, dired, shell, calc, …
fast-repeat commands you need a single key or key chord.
fast-repeat commands are also the most frequently used commands, every second or few seconds.
ergoemacs-mode, is a package that solved the fast-repeat commands. (ergoemacs-mode also has a system for non-fast-repeat commands, but isn't designed from the ground up. It's based on converting emacs C-x to non-chord key sequences.)
xah fly keys Mode is my new package that deal with fast-repeat commands. The key choices are mostly compatible with ergoemacs-mode. The major difference is that this is a modal input system, like vi.
that leaves the non-fast-repeat commands, which is basically all commands of emacs C-x keys.
so, the news is, i've now designed a set for this. The key map choice is based on frequency of the command and ease of key position.
If you find a GNU emacs command that by default has a key but is not covered here, it's a bug. (actually, it's 98% complete. there are about 100 commands with keys that is rarely used. (you can see them near the end of the file, as commented out lines. i wasn't sure what/where to do with them yet))
this is new because it's the first time i completely designed entire emacs keys for public use. Before, i was simply using my own keys without regard to other people's use.
for stories leading to this, see
- Banish Key Chords
- The Roadmap to Completely Replace Emacs's Key System, Part 1
- The Roadmap to Completely Replace Emacs's Key System, Part 2
addendum: the keys are merged into xah fly keys Mode