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!