anchor.diff:               (line-end end)
                (let ((eob (not (character-offset end 1))))
                  (kill-region start end)
  +               (kill-append "" nil '(:vi-line))
                  (if eob
                      (unless *vi-clear-recursive*
                        (delete-previous-char))
  
positive.code: (define-command vi-delete-next-char (&optional (n 1)) ("p")
    (unless (empty-line (current-point))
      (delete-next-char n)
      (kill-append "" nil '(:vi-nolf))
      (fall-within-line (current-point))))
  
  (define-command vi-delete-previous-char (&optional (n 1)) ("p")
    (unless (bolp (current-point))
      (delete-previous-char n)
      (kill-append "" nil '(:vi-nolf))))
  
  (defvar *vi-delete-recursive* nil)
  (let ((tag (gensym)))
  
negative.code:              (unless (continue-flag :kill)
                 (kill-ring-new))
               (kill-push (get-output-stream-string out))
               (when (visual-line-p)
                 (kill-append "" nil '(:vi-line))))
             (vi-visual-end))
            (t
             (let ((command (lookup-keybind (read-key))))
  