evil-dvorak

https://github.com/jbranso/evil-dvorak.git

git clone 'git://github.com/jbranso/evil-dvorak.git'
5

With evil-dvorak you can use emacs's evil mode with bindings, that are friendly to the dvorak keyboard. (If your keyboard in the top left reads “qwerty”, then you are using the qwerty keyboard). Why would you want to use the dvorak keyboard instead of qwerty? Because the qwerty layout is an outdated keyboard layout. It was designed for typewriters. In those days, if you pressed two keys together too soon, the keys would very likely stick together. To decrease the chance of keys getting stuck while typing, the qwerty keyboard layout was designed. It's design goal is to spead out keys that are likely to be pressed often. This means that when you type, your fingers move a good distance between key presses.

The dvorak keyboard has a different goal in mind. It puts keys, that are ofter used, side by side. Do some research for yourself and see if you want to make the switch.

You can install evil-dvorak from melpa.

M-x package-install RET evil-dvorak

Then add this to your emacs config file (init.el).

(require 'evil-dvorak)
(global-evil-dvorak-mode 1)

Configuration

I like evil-next-line and evil-previous-line to be bound to h and t respectively, which is NOT how vim does it. If you wish to try my alternative to vim's layout, write this in your config.

(setq evil-dvorak-funky-h-and-t 1)
(require 'evil-dvorak)
(global-evil-dvorak-mode 1)

Evil-dvorak also provide you with a way to use web-mode keys with the prefix key: “H”. So “Hak” kills the current attribute and “Hev” vanishes the current html element. If you would like to use this, set up evil-dvorak like this:

(setq evil-dvorak-use-for-web-mode 1)
(require 'evil-dvorak)
(global-evil-dvorak-mode 1)

Keymap

In normal mode

Keybinding | Description ——————-|———————————————————— h | move the cursor one line up t | move the cursor one line down n | move the cursor one character to the left s | move the cursor one character to the right o | move backward one word O | move backward one WORD e | move forward one word E | move forward one WORD a | move to the beginning of the line A | move to the beginning of the line and enter insert mode u | move to the end of the line U | move to the end of the line and enter insert mode backspace | ace-jump-mode i | insert to the left of point I | insert to the right of point , | undo last command . | redo last command $ | check the spelling of the current word l | recenter the buffer (the same as C-l in emacs state) j | join the lower line to the end of this line J | join the current line the end of the previous line m KEY | mark the current spot in the buffer with KEY ' KEY | go to the marked KEY in the buffer ; | comment-dwin. This is an emacs command that either adds a comment to the current line, or if the line is highlighted, then it comments out the line q | save and quit the current buffer. This is the same as (save-buffer) (kill-buffer) C-w [h | t | n | s] | move to the up, down, left, or right window. The syntax [ h | t | n | s ] means that you have to pick either h, t, n, s. So the only valid commands are C-w h, C-w t, C-w n, C-w s C-c r | This begins to define an evil macro. In emacs state the binding for this in C-x ( C-h | insert a new line below point and switch to insert state C-t | insert a new line above point and switch to insert state. The reader should not that this conflicts with the emacs binding of (transpose-chars), which I have rebound to (global-set-key (kbd “C-c t”) 'transpose-chars) spacebar | inserts a space. > | move point to the beginning of the buffer < | move point to the end of the buffer