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

addendum: the keys are merged into xah fly keys Mode

Popular posts from this blog

11 Years of Writing About Emacs

does md5 creates more randomness?

Google Code shutting down, future of ErgoEmacs