anchor.diff:            (setf (previous-keymap-scheme-name mode)
                   (if vi-normal
                       (previous-keymap-scheme-name vi-normal)
  -                    (keymap-scheme-name buffer))))
  +                    (keymap-scheme-name buffer))
  +                (previous-vi-normal-mode mode)
  +                vi-normal))
           (vi-normal-mode :activate nil :buffer buffer)
           (setf (keymap-scheme-name buffer) scheme:vi-insert))))))
   
  
positive.code:     :type (or keymap:scheme-name null)
      :documentation "The previous keymap scheme that will be used when ending
  vi-normal-mode.")
     (keymap-scheme
      (define-scheme "vi"
        scheme:vi-insert
        (list
         "C-i" 'autofill
         "escape" 'vi-normal-mode
         "button1" 'vi-button1)))
     (destructor
      (lambda (mode)
  
negative.code:         (setf (keymap-scheme-name buffer) scheme:vi-normal)
          (setf (forward-input-events-p buffer) nil))))))
  
  (define-command switch-to-vi-normal-mode (&optional (mode (find-submode (current-buffer)
                                                                          'vi-insert-mode)))
    "Switch to the mode remembered to be the matching VI-normal one for this MODE."
    (when mode
      (enable-modes (list (and (previous-vi-normal-mode mode)
                               (mode-name (previous-vi-normal-mode mode)))))))
  
  ;; TODO: Move ESCAPE binding to the override map?
  (define-mode vi-insert-mode ()
    "Enable VI-style modal bindings (insert mode).
  