GNU Info

Info Node: (ediff)Selective Browsing

(ediff)Selective Browsing


Next: Highlighting Difference Regions Prev: Window and Frame Configuration Up: Customization
Enter node , (file) or (file)node

Selective Browsing
==================

   Sometimes it is convenient to be able to step through only some
difference regions, those that match certain regular expressions, and
to ignore all others.  On other occasions, you may want to ignore
difference regions that match some regular expressions, and to look
only at the rest.

   The commands `#f' and `#h' let you do precisely this.

   Typing `#f' lets you specify regular expressions that match
difference regions you want to focus on.  We shall call these regular
expressions REGEXP-A, REGEXP-B and REGEXP-C.  Ediff will then start
stepping through only those difference regions where the region in
buffer A matches REGEXP-A and/or the region in buffer B matches
REGEXP-B, etc.  Whether `and' or `or' will be used depends on how you
respond to a question.

   When scanning difference regions for the aforesaid regular
expressions, Ediff narrows the buffers to those regions.  This means
that you can use the expressions `\`' and `\'' to tie search to the
beginning or end of the difference regions.

   On the other hand, typing `#h' lets you specify (hide) uninteresting
regions.  That is, if a difference region in buffer A matches REGEXP-A,
the corresponding region in buffer B matches REGEXP-B and (if
applicable) buffer C's region matches REGEXP-C, then the region will be
ignored by the commands `n'/<SPC> (`ediff-next-difference') and
`p'/<DEL> (`ediff-previous-difference') commands.

   Typing `#f' and `#h' toggles selective browsing on and off.

   Note that selective browsing affects only `ediff-next-difference'
and `ediff-previous-difference', i.e., the commands `n'/<SPC> and
`p'/<DEL>.  `#f' and `#h' do not change the position of the point in
the buffers.  And you can still jump directly (using `j')  to any
numbered difference.

   Users can supply their own functions to specify how Ediff should do
selective browsing.  To change the default Ediff function, add a
function to `ediff-load-hook' which will do the following assignments:

     (setq ediff-hide-regexp-matches-function 'your-hide-function)
     (setq ediff-focus-on-regexp-matches-function 'your-focus-function)

   *Useful hint*: To specify a regexp that matches everything, don't
simply type <RET> in response to a prompt.  Typing <RET> tells Ediff to
accept the default value, which may not be what you want.  Instead, you
should enter something like <^> or <$>.  These match every line.

   You can use the status command, `i', to find out whether selective
browsing is currently in effect.

   The regular expressions you specified are kept in the local variables
`ediff-regexp-focus-A', `ediff-regexp-focus-B', `ediff-regexp-focus-C',
`ediff-regexp-hide-A', `ediff-regexp-hide-B', `ediff-regexp-hide-C'.
Their default value is the empty string (i.e., nothing is hidden or
focused on).  To change the default, set these variables in `.emacs'
using `setq-default'.

   In addition to the ability to ignore regions that match regular
expressions, Ediff can be ordered to start skipping over certain
"uninteresting" difference regions.  This is controlled by the following
variable:

`ediff-ignore-similar-regions'
     If `t', causes Ediff to skip over "uninteresting" difference
     regions, which are the regions where the variants differ only in
     the amount of the white space and newlines.  This feature can be
     toggled on/off interactively, via the command `##'.

   *Note:* In order for this feature to work, auto-refining of
difference regions must be on, since otherwise Ediff won't know if there
are fine differences between regions.  On devices where Emacs can
display faces, auto-refining is a default, but it is not turned on by
default on text-only terminals.  In that case, you must explicitly turn
auto-refining on (such as, by typing `@').

   *Reassurance:* If many such uninteresting regions appear in a row,
Ediff may take a long time to skip over them because it has to compute
fine differences of all intermediate regions.  This delay does not
indicate any problem.


automatically generated by info2www version 1.2.2.9