GNU Info

Info Node: (ediff)Highlighting Difference Regions

(ediff)Highlighting Difference Regions


Next: Narrowing Prev: Selective Browsing Up: Customization
Enter node , (file) or (file)node

Highlighting Difference Regions
===============================

   The following variables control the way Ediff highlights difference
regions:

`ediff-before-flag-bol'
`ediff-after-flag-eol'
`ediff-before-flag-mol'
`ediff-after-flag-mol'
     These variables hold strings that Ediff uses to mark the beginning
     and the end of the differences found in files A, B, and C on
     devices where Emacs cannot display faces.  Ediff uses different
     flags to highlight regions that begin/end at the beginning/end of
     a line or in a middle of a line.

`ediff-current-diff-face-A'
`ediff-current-diff-face-B'
`ediff-current-diff-face-C'
     Ediff uses these faces to highlight current differences on devices
     where Emacs can display faces.  These and subsequently described
     faces can be set either in `.emacs' or in `.Xdefaults'.  The X
     resource for Ediff is `Ediff', _not_ `emacs'.  Please refer to
     Emacs manual for the information on how to set X resources.

`ediff-fine-diff-face-A'
`ediff-fine-diff-face-B'
`ediff-fine-diff-face-C'
     Ediff uses these faces to show the fine differences between the
     current differences regions in buffers A, B, and C, respectively.

`ediff-even-diff-face-A'
`ediff-even-diff-face-B'
`ediff-even-diff-face-C'
`ediff-odd-diff-face-A'
`ediff-odd-diff-face-B'
`ediff-odd-diff-face-C'
     Non-current difference regions are displayed using these
     alternating faces.  The odd and the even faces are actually
     identical on monochrome displays, because without colors options
     are limited.  So, Ediff uses italics to highlight non-current
     differences.

`ediff-force-faces'
     Ediff generally can detect when Emacs is running on a device where
     it can use highlighting with faces.  However, if it fails to
     determine that faces can be used, the user can set this variable
     to `t' to make sure that Ediff uses faces to highlight differences.

`ediff-highlight-all-diffs'
     Indicates whether--on a windowind display--Ediff should highlight
     differences using inserted strings (as on text-only terminals) or
     using colors and highlighting.  Normally, Ediff highlights all
     differences, but the selected difference is highlighted more
     visibly.  One can cycle through various modes of highlighting by
     typing `h'.  By default, Ediff starts in the mode where all
     difference regions are highlighted.  If you prefer to start in the
     mode where unselected differences are not highlighted, you should
     set `ediff-highlight-all-diffs' to `nil'.  Type `h' to restore
     highlighting for all differences.

     Ediff lets you switch between the two modes of highlighting.  That
     is, you can switch interactively from highlighting using faces to
     highlighting using string flags, and back.  Of course, switching
     has effect only under a windowing system.  On a text-only terminal
     or in an xterm window, the only available option is highlighting
     with strings.

If you want to change the default settings for `ediff-force-faces' and
`ediff-highlight-all-diffs', you must do it *before* Ediff is loaded.

   You can also change the defaults for the faces used to highlight the
difference regions.  There are two ways to do this.  The simplest and
the preferred way is to use the customization widget accessible from the
menubar.  Ediff's customization group is located under "Tools", which in
turn is under "Programming".  The faces that are used to highlight
difference regions are located in the "Highlighting" subgroup of the
Ediff customization group.

   The second, much more arcane, method to change default faces is to
include some Lisp code in `~/.emacs'.  For instance,

     (setq ediff-current-diff-face-A
           (copy-face 'bold-italic 'ediff-current-diff-face-A))

would use the pre-defined fase `bold-italic' to highlight the current
difference region in buffer A (this face is not a good choice, by the
way).

   If you are unhappy with just _some_ of the aspects of the default
faces, you can modify them when Ediff is being loaded using
`ediff-load-hook'.  For instance:

     (add-hook 'ediff-load-hook
               (lambda ()
                 (set-face-foreground
                   ediff-current-diff-face-B "blue")
                 (set-face-background
                   ediff-current-diff-face-B "red")
                 (make-face-italic
                   ediff-current-diff-face-B)))

   *Note:* To set Ediff's faces, use only `copy-face' or
`set/make-face-...' as shown above. Emacs' low-level face-manipulation
functions should be avoided.


automatically generated by info2www version 1.2.2.9