tips-computer-viperRemap

Viperre (Viper REmap) is a remapping of the Viper keyboard layout (Viper is a Vi mode for Emacs).

Goals

  1. Minimize chording (i heard chording is bad for the hands)
  2. Minimize number of keystrokes and hand movement
  3. Maximize speed

The map

Here is a picture of a qwerty keyboard layout.

 ` qwer ty uiop []  BACK
   asdf gh jkl; '
   zcxv bn m,./
                    \
   SPACEBAR
 

Below is the remapping. Each key K' has been labeled with the name of the key K that, in standard Viper, did what K' does now. For example, the spacebar is labeled "i", because in the remap, the spacebar is used to enter insert mode, which is what the "i" key does in standard Viper. Another example is that the "z" key is labeled "u", because it is used to undo in the remap, which is what the "u" key did in standard Viper. Some keys are labeled with numbers; except for 0 (which indicates the BOL function), these are footnotes used to refer to functions which are not assigned to keys (or at least not keys with single-letter names) in standard viper.

 % Og{2 ?/ 1}co 56   v 
   0jbh Tt kwl$ e
   udyp 34 s`".
                    \
      i
 1 c-D (half page dwn)
 2 c-U (half page up)
 3 backsp
 4 delete (like the x key in std viper)
 5 delete word backwards
 6 delete word forwards

In insert mode, the keys are not remapped.

Many of the capital and control keys have not yet been remapped (i.e. they retain their standard bindings as of now). Those that have are:

 Z -> redo
 shift-t, shift-T -> f,F
 shift-x,c,v -> D, Y, P

Other changes:

List of functions which have been removed:

 m (consolidated under `)
 q, z (consolidated under g)
 r
 |

Code so far

The code consists of two files which may be downloaded from http://bitbucket.org/bshanks/viperre/src/

To use it, put the following in your .emacs (not .viper) after loading viper:

(load "viperre")
(viper-remap-qwerty)

If you are using the Colemak keyboard layout, replace (viperre-qwerty) with (viperre-colemak).


todo

not happy with/will probably change

way future, probably won't get to

"d2t)" should delete text until the second closing parenthese