(defun buffer-changes-recorder (change-beg change-end prev-len) (append-to-file ;(message (format "%s;%s;%s\n" (buffer-file-name) (format-time-string "%s") (if (> prev-len 0) (format "D;%d;%d" change-beg (+ change-beg prev-len)) (format "A;%d;%s" change-beg (buffer-substring change-beg change-end)) ) ) nil "~/test.log" ) ) (add-hook 'after-change-functions 'buffer-changes-recorder)