Hi Alex,

>    (de *KeyMap
> >       ("^u" ...)  # half page up
> > ...
> >    (de *KeyMap-g
> > ...
> >    (de *KeyMap-q
> > ...
> > which are then 'assoc'ed in the proper places in the main loop.
>
> AND: These places should always be at the *beginning* of the 'case'
> statements.
> In this way, the new keys can override the existing ones :)
>

This is great, much cleaner. I've moved my key maps to 'viprc' now and
updated
the 'vi' function:

# after count, register and change clauses
(T
   (if (assoc *Chr *KeyMap)
      (run (cdr @))
      (case *Chr
         ...

Similarly for "g" and "q" prefix, adjusting for call to 'getch':

("g"
   (if (assoc (getch) *KeyMap-g)
      (run (cdr @))
      (case *Chr
         ...

Simple and effective, works perfectly!

Reply via email to