GNU Emacs Manual - Comparing Files

Go to the first, previous, next, last section, table of contents.

## Comparing Files

The command `M-x diff` compares two files, displaying the differences in an Emacs buffer named ``*Diff*'`. It works by running the `diff` program, using options taken from the variable `diff-switches`, whose value should be a string.

The buffer ``*Diff*'` has Compilation mode as its major mode, so you can use `C-x `` to visit successive changed locations in the two source files. You can also move to a particular hunk of changes and type `RET` or `C-c C-c`, or click `Mouse-2` on it, to move to the corresponding source location. You can also use the other special commands of Compilation mode: `SPC` and `DEL` for scrolling, and `M-p` and `M-n` for cursor motion. See section Running Compilations under Emacs.

The command `M-x diff-backup` compares a specified file with its most recent backup. If you specify the name of a backup file, `diff-backup` compares it with the source file that it is a backup of.

The command `M-x compare-windows` compares the text in the current window with that in the next window. Comparison starts at point in each window, and each starting position is pushed on the mark ring in its respective buffer. Then point moves forward in each window, a character at a time, until a mismatch between the two windows is reached. Then the command is finished. For more information about windows in Emacs, section Multiple Windows.

With a numeric argument, `compare-windows` ignores changes in whitespace. If the variable `compare-ignore-case` is non-`nil`, it ignores differences in case as well.

See also section Merging Files with Emerge, for convenient facilities for merging two similar files.

Go to the first, previous, next, last section, table of contents.