anchor.diff:                  (keymap-scheme-name buffer))
               (previous-vi-normal-mode mode)
               vi-normal)
  -      (disable vi-normal))
  +      (when vi-normal
  +        (disable vi-normal)))
       (setf (keymap-scheme-name buffer) scheme:vi-insert)
       (when (passthrough-mode-p mode)
  -      (enable-modes '(nyxt/passthrough-mode:passthrough-mode)))))
  +      (enable-modes '(nyxt/passthrough-mode:passthrough-mode)
  +                    buffer))))
   
   (defmethod disable ((mode vi-insert-mode) &key)
     (setf (keymap-scheme-name (buffer mode))
  
positive.code:             (if vi-insert
                  (previous-keymap-scheme-name vi-insert)
                  (keymap-scheme-name buffer)))
        ;; Destroy vi-normal mode after setting previous-keymap-scheme-name, or
        ;; else we can't save the previous keymap scheme.
        (disable vi-insert))
      (setf (keymap-scheme-name buffer) scheme:vi-normal)
      (setf (forward-input-events-p buffer) nil)))
  
  
negative.code:     (cond
        ((and (nyxt/web-mode:input-tag-p response)
              (find-submode buffer 'vi-normal-mode))
         (enable-modes '(vi-insert-mode) buffer))
        ((and (not (nyxt/web-mode:input-tag-p response))
              (find-submode buffer 'vi-insert-mode))
         (enable-modes '(vi-normal-mode) buffer)))))
  
  (defmethod on-signal-load-finished ((mode vi-insert-mode) url)
    (declare (ignore url))
  