anchor.diff:          (progn
             (character-offset (current-point) 1)
             (yank)
  -          (delete-previous-char)
             (character-offset (current-point) -1))
           (progn
             (insert-character (line-end (current-point)) #\newline)
  -          (yank)
  -          (delete-previous-char)))))
  +          (yank)))))
   
   (define-command vi-paste-before () ()
     (line-start (current-point))
  
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:                (apply-visual-range (lambda (start end)
                                       (unless (point< start end)
                                         (rotatef start end))
                                       (write-string (points-to-string start end) out))))
               (unless (continue-flag :kill)
                 (kill-ring-new))
               (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))))
  