[comp.emacs] re [Looking for a Simple Text Editor] ..setting up keybindings...

grout@cadillac.cad.mcc.COM (Steve Grout) (09/01/88)

re...
 > =>...
 > =>It looks like you picked the easy ones.  Would you care to explain
 > =>what the four following are supposed to stand for?
 > =>	k  previous-line	keep moving back?  :-{
 >  > ....
 > ...
 > Mnemonics issues aside, I find the Emacs cursor keys very difficult
 > to type.  The nice thing about vi's cursor keys is that your fingers
 > do not have to leave the home row.  
 > Using the arrow keys slows me down
 > even more, as I prefer to keep my fingers near the home row.  
 > Does anyone have "easier" mappings for the Emacs keys?

EMACS, like other wide-use editors, e.g., word-star on MSDOS and certainly
VI, is best handled via two-pronged approach, with the underlying goal
being to:
  o  ALWAYS USE THE SAME KEYS EVERYWHERE.
  o  USE A REASONABLE SET OF KEYS FOR THE PARTICULAR 
       HOST/TERMINAL/WORKSTATION YOU ARE ON:
  O  USE A REASONABLE SET OF KEYS FOR WHAT YOU ARE DOING (typing,
     moving, cut/pasting, etc.)

 1. The MAIN approach - learn VANILLA EMACS keys as your mainstay:
     c-F = forward-character
     c-B = backward-character
     c-N = next-line
     c-P = previous-line
     and so forth.  

    Also the 'meta' (or, at worst, the ESCAPE) key versions
    the above as they are fairly natural and easy to remember:
     meta-F = forward word
      or
     ESC F  = forward word

    The vanilla set of meta-key bindings are mainly WORD-level
    versions of the control-key character-level actions.

    Try to learn the absolute minimum keys so you have to
    remember less (your brain is not kept busy doing a table-lookup
    at each editor action you need to do..).

(I don't here say that emacs vanilla keys are BETTER than any
other editor's main set, only that they come with emacs 'out of
the box'.  Since they exist and are single key strokes, CONSIDER
using them as a common base.)

 2. Then set up via local startup file bindings your own local
    versions of arrow keys and whatever else labelled keys on your
    keyboard provide natural and helpful actions, e.g.

     right-arrow = forward-character
     control-right-arrow = forward-word
     meta-right-arrow = forward-sentence (or C statement, whatever..)
     and so forth...

    As an example, my keyboard has a meta key that I ALWAYS (at least
    as often as possible) use to for instance bind:
          meta-E = call-last-kbd-macro

    I have been able to do my own set across gnuemacs, unipress emacs,
    uemacs, jove, micrognu, etc.

About...
 > Using the arrow keys slows me down
 > even more, as I prefer to keep my fingers near the home row.  

Agreed.  One should realize that the goal is not to pick ONE
approach to setting up the keyboard vs the editor bindings.
Instead, try to provide several NATURAL sets for your
environment.

By that I mean:

  + Have a SET WHICH YOU USE AS YOU TYPE so that indeed you KEEP
    YOUR HANDS OVER THE KEYBOARD AT ALL TIMES and so that the bindings
    gradually meld into the QWERTY key finger patterns that you touch
    type with. (In my view, if you don't already, you should really should
    learn touch type, including not looking at either the keyboard or
    at the screen as appropriate.) In emacs' case, I suggest these
    include at least the basic or 'vanilla' key bindings.

  + If you have arrow keys, have bindings for them...but use them
    when you in as much 'shift gears' to GLOBALLY MOVE AROUND THE WINDOWS
    AND LINES ONLY USING THE ARROW KEYS.  

    Once you have moved to where you want to go, then
    move your hands back over the keyboard and go back to typing without
    again moving your hands.

  + If you have a mouse, again work to get it working thru bindings.
    I can't tell you how to do that..each situation is different.
    But here again, you USE THE MOUSE BY STOPPING TOUCH TYPEING
    AND GOING INTO GLOBAL MOVES.

tnx,
--Steve Grout
Steve Grout, MCC CAD Program | ARPA: grout@mcc.com | Phone: [512] 338-3516
Box 200195, Austin, TX 78720 | UUCP: ...!cs.utexas.edu!milano!cadillac!grout