anchor.diff:    (message " -- INSERT --")
     (setf (element-name *modeline-element*) "[INSERT]"))
   
  -(defun on-hook ()
  +(defun enable-hook ()
     (setf *modeline-element* (make-vi-modeline-element))
     (modeline-add-status-list *modeline-element*)
     (trans-state 'command))
   
  -(defun off-hook ()
  +(defun disable-hook ()
     (modeline-remove-status-list *modeline-element*))
   
  -(define-global-mode vi-mode emacs-mode
  -  (:keymap *vi-keymap*
  -   :on-hook #'on-hook
  -   :off-hook #'off-hook))
  +(define-minor-mode vi-mode
  +    (:global t
  +     :keymap *command-keymap*
  +     :enable-hook #'enable-hook
  +     :disable-hook #'disable-hook))
   
   (define-key *command-keymap* "0" 'vi-move-to-beginning-of-line/universal-argument-0)
   (define-key *command-keymap* "1" 'universal-argument-1)
  
positive.code:         :lem-vi-mode.commands))
  (in-package :lem-vi-mode)
  
  (defvar *vi-keymap* (make-keymap :name '*vi-keymap* :undef-hook 'vi-command-dispatcher))
  (defvar *command-keymap* (make-keymap :name '*command-keymap* :undef-hook 'vi-default-undef-hook))
  (defvar *insert-keymap* (make-keymap :name '*insert-keymap*))
  
  (defvar *current-state*)
  (defvar *modeline-element*)
  
  (define-attribute state-attribute
  
negative.code: 
  (define-key *insert-keymap* "escape" 'vi-insert-end)
  
  (define-command vi-move-to-beginning-of-line/universal-argument-0 () ()
    (if (mode-active-p (current-buffer) 'universal-argument)
        (universal-argument-0)
  