anchor.diff:  (defvar *visual-keymap* (make-keymap :name '*visual-keymap* :parent *command-keymap*))
   
   (define-key *visual-keymap* "Escape" 'vi-visual-end)
  +(define-key *visual-keymap* "A" 'vi-visual-append)
   (define-key *visual-keymap* "I" 'vi-visual-insert)
   
   (define-vi-state visual (:keymap *visual-keymap*
  
positive.code:         (change-state 'visual 'visual-block)
          (message "-- VISUAL BLOCK --"))))
  
  (define-command vi-visual-insert () ()
    (when (visual-block-p)
      (let ((str (concatenate 'string
                              (loop for key-char = (key-to-char (read-key))
                                    while (char/= #\Escape key-char)
                                    collect key-char))))
        (apply-visual-range (lambda (start end)
                              (unless (point< start end)
                                (rotatef start end))
  
negative.code:            :visual-line-p
             :visual-block-p
             :apply-visual-range
             :vi-visual-insert
             :vi-visual-append))
  (in-package :lem-vi-mode.visual)
  
  (defvar *set-visual-function* nil)
  