From: moore@src.bae.co.UK (Chris Moore)
Newsgroups: gnu.emacs.help
Subject: Re: hand injuries
Date: 28 Jan 1993 07:51:19 -0500
Organization: Gatewayed from the GNU Project mailing list help-gnu-emacs@prep.ai.mit.edu
Distribution: world


sahul@loading-zone.stanford.edu (Zakir H. Sahul) said:
> Original-Sender: help-gnu-emacs-request@prep.ai.mit.edu

> In article <1993Jan26.003206.29170@smos.com>, david@smos.com (David Tornheim) writes:
> |> I have used EMACS for about 8 years now and have sworn by it, since
> |> I can use it on almost every machine.  Unfortunately, I've noticed that
> |> my hands hurt quite a bit at the end of the day, _especially_ when
> |> I edit files with EMACS.  The frequent use of the CNTL key combined
> |> with another key is the motion that is most painful. (e.g. I use C-b and
> |> C-f a lot to move around within a line, since commands like M-F and
> |> M-B actually take longer).  Because of this, I'm seriously considering
> |> switching over to the evil VI editor to save my hands from permanent
> |> damage (no kidding!).  Is anyone else in the same boat? Does anyone
> |> have other suggestions?
> |> 


> My left pinky also hurts from hitting the CNTL key a lot.  I wish there was
> something....

> Is there elisp code that will enable emacs to:

> 1) Act like regular emacs when in "insert" mode.

> 2) When in "browse" mode, then one does't need to hit the CNTL key for C-key
> commands.  For example, if in "insert" mode, C-n = next line, C-e = end of
> line, and C-l = recenter, then in "browse" mode, n = next line, e = end of line
> and l = recenter.  Command that require two keys (C-x C-c etc) will remain the
> same. 

> 3) A special key (like C-i) can be defined to toggle between "insert" and 
> "browse" modes.

> vip mode does a decent job of doing this.  However, I do not like the "vi"
> definition of cursor movement keys.  I would prefer to customize them.
> Alternatively, is there a vip-mode.el that I can modify?

In the standard emacs lisp directory, you'll find vip.el.  You probably
don't want to modify it, since that will affect other people.  I use lines
like this in my .emacs (make sure these lines appear after you have loaded
vip with (load "vip"):

(define-key vip-mode-map "s" 'vip-substitute)
(define-key vip-mode-map "\C-b" 'backward-char)
(define-key vip-mode-map "\C-f" 'forward-char)
(define-key vip-mode-map "~" 'vip-othercase)

The default cursor movement is defined by these lines, so you can just
change the characters between the quotation marks to change cursor movement
keys.

(define-key vip-mode-map "h" 'vip-backward-char)
(define-key vip-mode-map "j" 'vip-next-line)
(define-key vip-mode-map "k" 'vip-previous-line)
(define-key vip-mode-map "l" 'vip-forward-char)

Also, there's a package called mvip.el around somewhere (ask archie if
you're on speaking terms with him) which is described thusly in the (old)
copy I use:

;; LCD Archive Entry:
;; vip-mode|Aamod Sane|sane@cs.uiuc.edu
;; |Much improved vip mode - minor mode vi emulation
;; |91-07-24|4.2|~/modes/vip-mode.shar.Z

Hope this helps.

Chris.
--
moore@src.bae.co.uk   /      Chris Moore      \
                     / Sowerby Research Centre \
                     \  British Aerospace PLC  /
tel: +44 272 363375   \      BRISTOL, UK      /
Newsgroups: gnu.emacs.help