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

# Commands

All Ediff commands are displayed in a quick help window, unless you type `?` to shrink the window to just one line. You can redisplay the help window by typing `?` again. In this section we comment only on the features that cannot be readily deduced from the quick help window. You can always type `E` in the control window to display this manual.

Many Ediff commands take numeric prefix arguments. For instance, if you type a number, say 3, and then `j` (`ediff-jump-to-difference`), Ediff moves to the third difference region. Typing 3 and then `a` (`ediff-diff-to-diff`) copies the 3d difference region from buffer A to buffer B. Typing `b` does copying in the opposite direction. (In 3-way comparison mode, the commands for copying are `ab`, `ba`, `ca`, etc.) Likewise, 4 followed by `ra` restores the 4th difference region in buffer A (if it was previously saved as a result of copying from, say, buffer B to A).

Some commands take negative prefix arguments as well. For instance, typing `-` and then `j` will take Ediff to the last difference. Typing `-2` then `j` takes Ediff to to the penultimate difference region, etc.

Without the prefix argument, all commands operate on the current selected difference region. You can select any difference region as the current one using other Ediff commands.

For some commands, the value of the prefix argument is immaterial. However, if supplied, the prefix argument modifies the command. For instance, normally the commands `ga`/`gb`/`gc` (`ediff-jump-to-difference-at-point`) causes Ediff to jump to the difference region that is closest to the point in a specified buffer (the buffer, A, B, or C, is specified by the last character of the command, i.e., for `gb`, the specified buffer is B). However, with a prefix argument, Ediff would position all these buffers around the area indicated by the current point in the specified buffer: if the point is inside a difference region, then the buffers will be positioned at this difference region. If the point is not in any difference region, then it is in an area where all buffers agree with each other. In this case, all buffers will be positioned so that they would display this area.

The total number of differences and the current difference number are always displayed in the mode line of the control window.

If, after making changes to buffers A, B, or C, you decide to save them, it is best to use `ediff-save-buffer`, which is bound to `wa`, `wb`, and `wc` (`wa` will save buffer A, `wb` saves buffer B, etc.).

Typing `wd` saves the output from the `diff` utility to a file, so you can later refer to it. With prefix argument, this command saves the plain output from ``diff'` (see `ediff-diff-program` and `ediff-diff-options`). Without the argument, it saves customized ``diff'` output (see `ediff-custom-diff-program` and `ediff-custom-diff-options`), if it is available.

Instead of saving it, ``diff'` output can be displayed using the command `D`. Without the prefix argument, it displays the customized ``diff'` output of the session. With the prefix argument, it displays the plain ``diff'` output If either of the ``diff'` outputs is unavailable (because it wasn't generated or the user killed the respective buffer), then Ediff will try to display the other ``diff'` output. If none is available, a warning is issued.

The command `z` suspends the current ediff session. It hides the control buffer and the variants. The easiest way to resume a suspended Ediff session is through the registry of active sessions. See section Registry of Ediff Sessions, for details.

The command `q` quits the current Ediff session. With a prefix argument, it will ask the user whether to delete the variant buffers.

The command `s` is used only for merging. It shrinks window C (the merge window) to its minimal size, thereby exposing as much of buffers A and B as possible. This command is intended only for temporary viewing; therefore, Ediff restores window C to its original size whenever it makes any other change in the window configuration. Typing `s` again also restores the original size of window C. However, recentering and jumping to a difference does not affect window C's size.

With a positive prefix argument, the command `s` makes the merge window, window C, slightly taller. With `-` or a negative prefix argument, `s` makes window C slightly shorter.

Another command used only for merging is `+`. Its effect is to combine the current difference regions of buffers A and B and put the combination into the merge buffer. See section Merging and diff3, specifically, the variables `ediff-combine-diffs` and `ediff-combination-pattern`.

In merge mode, Ediff uses a default variant (one of the two files being merged) when it cannot decide which of the difference regions (that of buffer A or buffer B) should be copied into the merge buffer. You might decide to use the other variant instead. To facilitate this, Ediff has a command, bound to `&`, which selects another default variant for the current difference and subsequent differences. You can specify as the new default any of ``default-A'`, ``default-B'`, or ``combined'`. See section Merging and diff3, for details.

Such repeated merging affects only difference regions that have default-A/B status, and only if they were not changed with respect to their originals.

Some commands are not bound to any key:

`eregistry`
`ediff-show-registry`
  This command brings up the registry of active Ediff sessions. Ediff registry is a useful device that can be used for resuming Ediff sessions when the user switched to some other work before finishing a comparison or merging job. It is also useful for switching between multiple active Ediff sessions that are run at the same time. The function `eregistry` is an alias for `ediff-show-registry`.
`ediff-toggle-multiframe`
  Changes the display from the multi-frame mode (where the quick help window is in a separate frame) to the single-frame mode (where all Ediff buffers share the same frame), and vice versa.
`ediff-revert-buffers-then-recompute-diffs`
  This command reverts the buffers you are comparing and recomputes their differences. It is useful when, after making changes, you decided to make a fresh start, or if at some point you changed the files being compared but want to discard any changes to comparison buffers that were done since then. This command normally asks for confirmation before reverting files. With a prefix argument, it reverts files without asking.
`ediff-profile`
  Ediff has an admittedly primitive (but useful) facility for profiling Ediff's commands. It is meant for Ediff maintenance--specifically, for making it run faster. The function `ediff-profile` toggles profiling of ediff commands.

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