anchor.diff:        (lem::current-kill-ring)
       (declare (ignore string))
       (if (eql type :vi-nolf)
  +        (character-offset (current-point) 1)
           (progn
  -          (character-offset (current-point) 1)
  -          (yank)
  -          (character-offset (current-point) -1))
  -        (progn
  -          (insert-character (line-end (current-point)) #\newline)
  -          (yank)))))
  +          (vi-next-line)
  +          (line-start (current-point))))
  +    (yank)
  +    (character-offset (current-point) -1)
  +    (unless (eql type :vi-nolf)
  +      (line-start (current-point)))))
   
   (define-command vi-paste-before () ()
  -  (line-start (current-point))
  -  (open-line 1)
     (yank))
   
   (define-command vi-replace-char (c)
  
positive.code:            (with-point ((start (current-point))
                          (end (current-point)))
               (line-start start)
               (line-offset end (1- n))
               (line-end end)
               (kill-region start end)
               (unless *vi-clear-recursive*
                 (delete-next-char)))
             (throw tag t))
            ((visual-p)
             (with-output-to-string (out)
  
negative.code:            (with-point ((start (current-point))
                          (end (current-point)))
               (line-start start)
               (line-offset end n)
               (line-start end)
               (copy-region start end)
               (throw tag t)))
            ((visual-p)
  