anchor.diff:  (in-package :lem-vi-mode.commands)
   
   (defvar *cursor-offset* -1)
  +(defvar *vi-clear-recursive* nil)
  +(defvar *vi-delete-recursive* nil)
  +(defvar *vi-yank-recursive* nil)
   
   (defun bolp (point)
     (zerop (point-charpos point)))
  
positive.code:          (unless *vi-clear-recursive*
             (fall-within-line (current-point))))))
  
  (defvar *vi-clear-recursive* nil)
  (define-command vi-clear () ()
    (let ((*vi-clear-recursive* t))
      (vi-delete))
  
negative.code:   (unless (bolp (current-point))
      (delete-previous-char n)))
  
  (let ((tag (gensym)))
    (define-command vi-delete (&optional (n 1)) ("p")
      (cond (*vi-delete-recursive*
  