Given a modified buffer, how can I diff it with the file backing it on disk to see what I've changed?


2 Answers 2


You want the command M-x diff-buffer-with-file. See the manual:

diff-buffer-with-file is an interactive autoloaded compiled Lisp function in `diff.el'.

(diff-buffer-with-file &optional BUFFER)

View the differences between BUFFER and its associated file. This requires the external program diff to be in your exec-path.

You may also be interested in highlight-changes-mode which automatically and interactively highlights changes made to the buffer after it was enabled.

  • Along the lines of highlight-changes-mode there's also the diff-hl package in GNU ELPA.
    – Stefan
    Jan 17, 2015 at 4:00
  • Yes, but right now it only works to show diffs between the (saved) buffer and a vc revision. I worked on diffing the buffer (as opposed to its backing file) in diff-hl #33, but it's blocked on a bug in the Emacs core.
    – PythonNut
    Jan 17, 2015 at 5:27
  • Do you have a bug-report number for that?
    – Stefan
    Jan 17, 2015 at 14:01
  • @Stefan, I haven't gotten around to it yet.
    – PythonNut
    Jan 18, 2015 at 5:23
  • Got fixed a (probably) long time ago: works in 2019! :)
    – mistige
    Jul 27, 2019 at 10:26

Command ediff-current-file:

ediff-current-file is an interactive autoloaded Lisp function in


Start ediff between current buffer and its file on disk.
This command can be used instead of `revert-buffer'.  If there is
nothing to revert then this command fails.
  • 2
    ediff-current-file has some benefits over diff-buffer-with-file if you want interactive review of changes rather than a plain diff. The interactive review even allows to selectively revert some parts, in case you finally don't want to save them. See also emacs.stackexchange.com/a/3778/10614 for a more complete answer. Dec 29, 2015 at 11:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.