anchor.diff:                 (apply-visual-range (lambda (start end)
                                        (unless (point< start end)
                                          (rotatef start end))
  -                                     (write-line (points-to-string start end)
  -                                                 out))))
  +                                     (write-string (points-to-string start end) out))))
                (unless (continue-flag :kill)
                  (kill-ring-new))
  -             (kill-push (get-output-stream-string out)))
  +             (kill-push (get-output-stream-string out))
  +             (unless (visual-line-p)
  +               (kill-append "" nil '(:vi-nolf))))
              (vi-visual-end))
             (t
              (let ((command (lookup-keybind (read-key))))
  
positive.code:                          (rotatef start end)
                           (character-offset end 1))
                         (when (point/= start end)
                           (copy-region start end)))))
                   (move-point (current-point) start))))))))
  
  (define-command vi-paste-after () ()
  
negative.code:              (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)
  