comparison man/ediff.texi @ 38514:10482dd382e7

* viper-ex.el (ex-token-list,ex-cmd-execute): Revamped, courtesy of Scott Bronson. (ex-cmd-assoc,ex-compile,ex-cmd-one-letr): New functions. (viper-check-sub,viper-get-ex-command,viper-execute-ex-command): Deleted functions. (viper-get-ex-com-subr,viper-ex,ex-mark): Changed to use the new ex-token-list. (viper-get-ex-address-subr): convert registers to char data type. * viper-util.el (viper-int-to-char,viper-char-equal): new functions. (viper-memq-char): use viper-int-to-char. (viper-file-checked-in-p): use vc-locking-user, if vc doesn't have vc-locking-state. (viper-read-key): use viper-read-key-sequence. * viper.el (viper-major-mode-modifier-list): added inferior-emacs-lisp-mode. (this-major-mode-requires-vi-state): new function that uses simple heuristics to decide if vi state is appropriate. (set-viper-state-in-major-mode): use this-major-mode-requires-vi-state. (viper-non-hook-settings): don't advise read-key-sequence. (viper-read-key-sequence): new function that replaces the previously used advice to read-key-sequence. * viper-cmd.el (viper-test-com-defun,viper-exec-change, viper-exec-Change,viper-execute-com,viper-insert,viper-append, viper-Append,viper-Insert,viper-open-line,viper-Open-line, viper-open-line-at-point,viper-substitute,viper-overwrite, viper-replace-char-subr,viper-forward-word,viper-forward-Word): got rid of the negative character hack. (viper-escape-to-state,viper-replace-state-exit-cmd): use viper-read-key-sequence. (viper-envelop-ESC-key): no need for ad-get-orig-definition. (viper-minibuffer-standard-hook,viper-read-string-with-history): don't override existing minibuffer-setup-hook. (viper-mark-point,viper-goto-mark-subr,viper-brac-function): convert registers to char data type. (viper-autoindent): use viper-indent-line. * viper-keym.el: use viper-exec-key-in-emacs. * viper.texi: Added credits, new commands, like :make. * ediff-util.el: Copyright years. (ediff-choose-syntax-table): New function. (ediff-setup): Use ediff-choose-syntax-table. (ediff-file-checked-out-p,ediff-file-checked-in-p): check if vc-state is available. (ediff-make-temp-file): use ediff-coding-system-for-write. * ediff-init.el (ediff-with-syntax-table): New macro, uses with-syntax-table. (ediff-coding-system-for-read): from ediff-diff.el (ediff-coding-system-for-write): new variable. (ediff-highest-priority): fixed the bug having to do with disappearing overlays. (ediff-file-remote-p): use file-remote-p, if available. (ediff-listable-file): new function. (ediff-file-attributes): use ediff-listable-file. * ediff-mult.el (ediff-meta-insert-file-info1): use ediff-listable-file. * ediff-ptch.el (ediff-prompt-for-patch-file): use ediff-coding-system-for-read. (ediff-patch-file-internal): use ediff-coding-system-for-write. * ediff-diff.el (ediff-coding-system-for-read): moved to ediff-init.el. (ediff-match-diff3-line,ediff-get-diff3-group): improved pattern. * ediff.el: Date of last update, copyright years. * ediff-wind (ediff-setup-control-frame): Nill->nil. * ediff.texi: added clarifications, acknowledgements.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Sat, 21 Jul 2001 05:28:24 +0000
parents d0c11ec0421d
children 62e02f5ae533
comparison
equal deleted inserted replaced
38513:144b56521d1d 38514:10482dd382e7
11 11
12 @settitle Ediff User's Manual 12 @settitle Ediff User's Manual
13 @synindex vr cp 13 @synindex vr cp
14 @synindex fn cp 14 @synindex fn cp
15 @synindex pg cp 15 @synindex pg cp
16 @synindex ky cp
16 17
17 @dircategory Emacs 18 @dircategory Emacs
18 @direntry 19 @direntry
19 * Ediff: (ediff). A visual interface for comparing and merging programs. 20 * Ediff: (ediff). A visual interface for comparing and merging programs.
20 @end direntry 21 @end direntry
147 extends Emerge, much of the functionality in Ediff is influenced by Emerge. 148 extends Emerge, much of the functionality in Ediff is influenced by Emerge.
148 The architecture and the interface are, of course, drastically different. 149 The architecture and the interface are, of course, drastically different.
149 150
150 @node Major Entry Points, Session Commands, Introduction, Top 151 @node Major Entry Points, Session Commands, Introduction, Top
151 @chapter Major Entry Points 152 @chapter Major Entry Points
153
154 When Ediff starts up, it displays a small control window, which accepts the
155 Ediff commands and two or three windows displaying the files to be compared
156 or merged. The control window can be in its own small frame or it can be
157 part of a bigger frame that displays other buffers. In any case, it is
158 important that the control window be active (i.e., be the one receiving the
159 keystrokes) when you use Ediff. You can switch to other Emacs buffers at
160 will and even edit the files currently being compared with Ediff and then
161 switch back to Ediff at any time by activating the appropriate Emacs windows.
152 162
153 Ediff can be invoked interactively using the following functions, which can 163 Ediff can be invoked interactively using the following functions, which can
154 be run either from the minibuffer or from the menu bar. In the menu bar, 164 be run either from the minibuffer or from the menu bar. In the menu bar,
155 all Ediff's entry points belong to three submenus of the Tools menu: 165 all Ediff's entry points belong to three submenus of the Tools menu:
156 Compare, Merge, and Apply Patch. 166 Compare, Merge, and Apply Patch.
441 @node Quick Help Commands,Other Session Commands,,Session Commands 451 @node Quick Help Commands,Other Session Commands,,Session Commands
442 @section Quick Help Commands 452 @section Quick Help Commands
443 453
444 @table @kbd 454 @table @kbd
445 @item ? 455 @item ?
456 @kindex ?
446 Toggles the Ediff Quick Help window ON and OFF. 457 Toggles the Ediff Quick Help window ON and OFF.
447 @item G 458 @item G
459 @kindex G
448 Prepares a mail buffer for sending a praise or a curse to the Ediff maintainer. 460 Prepares a mail buffer for sending a praise or a curse to the Ediff maintainer.
449 461
450 @item E 462 @item E
463 @kindex E
451 Brings up the top node of this manual, where you can find further 464 Brings up the top node of this manual, where you can find further
452 information on the various Ediff functions and advanced issues, such as 465 information on the various Ediff functions and advanced issues, such as
453 customization, session groups, etc. 466 customization, session groups, etc.
454 467
455 @item v 468 @item v
469 @kindex v
456 Scrolls up buffers A and B (and buffer C where appropriate) in a 470 Scrolls up buffers A and B (and buffer C where appropriate) in a
457 coordinated fashion. 471 coordinated fashion.
458 @item V 472 @item V
473 @kindex V
459 Scrolls the buffers down. 474 Scrolls the buffers down.
460 475
461 @item < 476 @item <
477 @kindex <
462 Scrolls the buffers to the left simultaneously. 478 Scrolls the buffers to the left simultaneously.
463 @item > 479 @item >
480 @kindex >
464 Scrolls buffers to the right. 481 Scrolls buffers to the right.
465 482
466 @item wd 483 @item wd
484 @kindex wd
467 Saves the output from the diff utility, for further reference. 485 Saves the output from the diff utility, for further reference.
468 486
469 With prefix argument, saves the plain output from @code{diff} (see 487 With prefix argument, saves the plain output from @code{diff} (see
470 @code{ediff-diff-program} and @code{ediff-diff-options}). Without the 488 @code{ediff-diff-program} and @code{ediff-diff-options}). Without the
471 argument, it saves customized @code{diff} output (see 489 argument, it saves customized @code{diff} output (see
472 @code{ediff-custom-diff-program} and @code{ediff-custom-diff-options}), if 490 @code{ediff-custom-diff-program} and @code{ediff-custom-diff-options}), if
473 it is available. 491 it is available.
474 492
475 @item wa 493 @item wa
494 @kindex wa
476 Saves buffer A, if it was modified. 495 Saves buffer A, if it was modified.
477 @item wb 496 @item wb
497 @kindex wb
478 Saves buffer B, if it was modified. 498 Saves buffer B, if it was modified.
479 @item wc 499 @item wc
500 @kindex wc
480 Saves buffer C, if it was modified (if you are in a session that 501 Saves buffer C, if it was modified (if you are in a session that
481 compares three files simultaneously). 502 compares three files simultaneously).
482 503
483 @item a 504 @item a
505 @kindex a
484 @emph{In comparison sessions:} 506 @emph{In comparison sessions:}
485 Copies the current difference region (or the region specified as the prefix 507 Copies the current difference region (or the region specified as the prefix
486 to this command) from buffer A to buffer B. 508 to this command) from buffer A to buffer B.
487 Ediff saves the old contents of buffer B's region; it can 509 Ediff saves the old contents of buffer B's region; it can
488 be restored via the command @kbd{rb}, which see. 510 be restored via the command @kbd{rb}, which see.
491 Copies the current difference region (or the region specified as the prefix 513 Copies the current difference region (or the region specified as the prefix
492 to this command) from buffer A to the merge buffer. The old contents of 514 to this command) from buffer A to the merge buffer. The old contents of
493 this region in buffer C can be restored via the command @kbd{r}. 515 this region in buffer C can be restored via the command @kbd{r}.
494 516
495 @item b 517 @item b
518 @kindex b
496 Works similarly, but copies the current difference region from buffer B to 519 Works similarly, but copies the current difference region from buffer B to
497 buffer A (in @emph{comparison sessions}) or the merge buffer (in 520 buffer A (in @emph{comparison sessions}) or the merge buffer (in
498 @emph{merge sessions}). 521 @emph{merge sessions}).
499 522
500 Ediff saves the old contents of the difference region copied over; it can 523 Ediff saves the old contents of the difference region copied over; it can
501 be reinstated via the command @kbd{ra} in comparison sessions and 524 be reinstated via the command @kbd{ra} in comparison sessions and
502 @kbd{r} in merge sessions. 525 @kbd{r} in merge sessions.
503 526
504 @item ab 527 @item ab
528 @kindex ab
505 Copies the current difference region (or the region specified as the prefix 529 Copies the current difference region (or the region specified as the prefix
506 to this command) from buffer A to buffer B. This (and the next five) 530 to this command) from buffer A to buffer B. This (and the next five)
507 command is enabled only in sessions that compare three files 531 command is enabled only in sessions that compare three files
508 simultaneously. The old region in buffer B is saved and can be restored 532 simultaneously. The old region in buffer B is saved and can be restored
509 via the command @kbd{rb}. 533 via the command @kbd{rb}.
510 @item ac 534 @item ac
535 @kindex ac
511 Copies the difference region from buffer A to buffer C. 536 Copies the difference region from buffer A to buffer C.
512 The old region in buffer C is saved and can be restored via the command 537 The old region in buffer C is saved and can be restored via the command
513 @kbd{rc}. 538 @kbd{rc}.
514 @item ba 539 @item ba
540 @kindex ba
515 Copies the difference region from buffer B to buffer A. 541 Copies the difference region from buffer B to buffer A.
516 The old region in buffer A is saved and can be restored via the command 542 The old region in buffer A is saved and can be restored via the command
517 @kbd{ra}. 543 @kbd{ra}.
518 @item bc 544 @item bc
545 @kindex bc
519 Copies the difference region from buffer B to buffer C. 546 Copies the difference region from buffer B to buffer C.
520 The command @kbd{rc} undoes this. 547 The command @kbd{rc} undoes this.
521 @item ca 548 @item ca
549 @kindex ca
522 Copies the difference region from buffer C to buffer A. 550 Copies the difference region from buffer C to buffer A.
523 The command @kbd{ra} undoes this. 551 The command @kbd{ra} undoes this.
524 @item cb 552 @item cb
553 @kindex cb
525 Copies the difference region from buffer C to buffer B. 554 Copies the difference region from buffer C to buffer B.
526 The command @kbd{rb} undoes this. 555 The command @kbd{rb} undoes this.
527 556
528 @item p 557 @item p
529 @itemx DEL 558 @itemx DEL
559 @kindex p
560 @kindex DEL
530 Makes the previous difference region current. 561 Makes the previous difference region current.
531 @item n 562 @item n
532 @itemx SPC 563 @itemx SPC
564 @kindex n
565 @kindex SPC
533 Makes the next difference region current. 566 Makes the next difference region current.
534 567
535 @item j 568 @item j
536 @itemx -j 569 @itemx -j
537 @itemx Nj 570 @itemx Nj
571 @kindex j
538 Makes the very first difference region current. 572 Makes the very first difference region current.
539 573
540 @kbd{-j} makes the last region current. Typing a number, N, and then `j' 574 @kbd{-j} makes the last region current. Typing a number, N, and then `j'
541 makes the difference region N current. Typing -N (a negative number) then 575 makes the difference region N current. Typing -N (a negative number) then
542 `j' makes current the region Last - N. 576 `j' makes current the region Last - N.
543 577
544 @item ga 578 @item ga
579 @kindex ga
545 Makes current the difference region closest to the position of the point in 580 Makes current the difference region closest to the position of the point in
546 buffer A. 581 buffer A.
547 582
548 However, with a prefix argument, Ediff would position all variants 583 However, with a prefix argument, Ediff would position all variants
549 around the area indicated by the current point in buffer A: if 584 around the area indicated by the current point in buffer A: if
551 positioned at this difference region. If the point is not in any difference 586 positioned at this difference region. If the point is not in any difference
552 region, then it is in an area where all variants agree with each other. In 587 region, then it is in an area where all variants agree with each other. In
553 this case, the variants will be positioned so that each would display this 588 this case, the variants will be positioned so that each would display this
554 area (of agreement). 589 area (of agreement).
555 @item gb 590 @item gb
591 @kindex gb
556 Makes current the difference region closest to the position of the point in 592 Makes current the difference region closest to the position of the point in
557 buffer B. 593 buffer B.
558 594
559 With a prefix argument, behaves like @kbd{ga}, but with respect to buffer B. 595 With a prefix argument, behaves like @kbd{ga}, but with respect to buffer B.
560 @item gc 596 @item gc
597 @kindex gc
561 @emph{In merge sessions:} 598 @emph{In merge sessions:}
562 makes current the difference region closest to the point in the merge buffer. 599 makes current the difference region closest to the point in the merge buffer.
563 600
564 @emph{In 3-file comparison sessions:} 601 @emph{In 3-file comparison sessions:}
565 makes current the region closest to the point in buffer C. 602 makes current the region closest to the point in buffer C.
566 603
567 With a prefix argument, behaves like @kbd{ga}, but with respect to buffer C. 604 With a prefix argument, behaves like @kbd{ga}, but with respect to buffer C.
568 605
569 @item ! 606 @item !
607 @kindex !
570 Recomputes the difference regions, bringing them up to date. This is often 608 Recomputes the difference regions, bringing them up to date. This is often
571 needed because it is common to do all sorts of editing during Ediff 609 needed because it is common to do all sorts of editing during Ediff
572 sessions, so after a while, the highlighted difference regions may no 610 sessions, so after a while, the highlighted difference regions may no
573 longer reflect the actual differences among the buffers. 611 longer reflect the actual differences among the buffers.
574 612
575 @item * 613 @item *
614 @kindex *
576 Forces refinement of the current difference region, which highlights the exact 615 Forces refinement of the current difference region, which highlights the exact
577 words of disagreement among the buffers. With a negative prefix argument, 616 words of disagreement among the buffers. With a negative prefix argument,
578 unhighlights the current region. 617 unhighlights the current region.
579 618
580 Forceful refinement may be needed if Ediff encounters a difference region 619 Forceful refinement may be needed if Ediff encounters a difference region
587 626
588 This command is also useful when the highlighted fine differences are 627 This command is also useful when the highlighted fine differences are
589 no longer current, due to user editing. 628 no longer current, due to user editing.
590 629
591 @item m 630 @item m
631 @kindex m
592 Displays the current Ediff session in a frame as wide as the physical 632 Displays the current Ediff session in a frame as wide as the physical
593 display. This is useful when comparing files side-by-side. Typing `m' again 633 display. This is useful when comparing files side-by-side. Typing `m' again
594 restores the original size of the frame. 634 restores the original size of the frame.
595 635
596 @item | 636 @item |
637 @kindex |
597 Toggles the horizontal/vertical split of the Ediff display. Horizontal 638 Toggles the horizontal/vertical split of the Ediff display. Horizontal
598 split is convenient when it is possible to compare files 639 split is convenient when it is possible to compare files
599 side-by-side. If the frame in which files are displayed is too narrow 640 side-by-side. If the frame in which files are displayed is too narrow
600 and lines are cut off, typing @kbd{m} may help some. 641 and lines are cut off, typing @kbd{m} may help some.
601 642
602 @item @@ 643 @item @@
644 @kindex @@
603 Toggles auto-refinement of difference regions (i.e., automatic highlighting 645 Toggles auto-refinement of difference regions (i.e., automatic highlighting
604 of the exact words that differ among the variants). Auto-refinement is 646 of the exact words that differ among the variants). Auto-refinement is
605 turned off on devices where Emacs doesn't support highlighting. 647 turned off on devices where Emacs doesn't support highlighting.
606 648
607 On slow machines, it may be advantageous to turn auto-refinement off. The 649 On slow machines, it may be advantageous to turn auto-refinement off. The
608 user can always forcefully refine specific difference regions by typing 650 user can always forcefully refine specific difference regions by typing
609 @kbd{*}. 651 @kbd{*}.
610 652
611 @item h 653 @item h
654 @kindex h
612 Cycles between full highlighting, the mode where fine differences are not 655 Cycles between full highlighting, the mode where fine differences are not
613 highlighted (but computed), and the mode where highlighting is done with 656 highlighted (but computed), and the mode where highlighting is done with
614 ASCII strings. The latter is not really recommended, unless on a dumb TTY. 657 ASCII strings. The latter is not really recommended, unless on a dumb TTY.
615 658
616 @item r 659 @item r
660 @kindex r
617 Restores the old contents of the region in the merge buffer. 661 Restores the old contents of the region in the merge buffer.
618 (If you copied a difference region from buffer A or B into the merge buffer 662 (If you copied a difference region from buffer A or B into the merge buffer
619 using the commands @kbd{a} or @kbd{b}, Ediff saves the old contents of the 663 using the commands @kbd{a} or @kbd{b}, Ediff saves the old contents of the
620 region in case you change your mind.) 664 region in case you change your mind.)
621 665
622 This command is enabled in merge sessions only. 666 This command is enabled in merge sessions only.
623 667
624 @item ra 668 @item ra
669 @kindex ra
625 Restores the old contents of the current difference region in buffer A, 670 Restores the old contents of the current difference region in buffer A,
626 which was previously saved when the user invoked one of these commands: 671 which was previously saved when the user invoked one of these commands:
627 @kbd{b}, @kbd{ba}, @kbd{ca}, which see. This command is enabled in 672 @kbd{b}, @kbd{ba}, @kbd{ca}, which see. This command is enabled in
628 comparison sessions only. 673 comparison sessions only.
629 @item rb 674 @item rb
675 @kindex rb
630 Restores the old contents of the current difference region in buffer B, 676 Restores the old contents of the current difference region in buffer B,
631 which was previously saved when the user invoked one of these commands: 677 which was previously saved when the user invoked one of these commands:
632 @kbd{a}, @kbd{ab}, @kbd{cb}, which see. This command is enabled in 678 @kbd{a}, @kbd{ab}, @kbd{cb}, which see. This command is enabled in
633 comparison sessions only. 679 comparison sessions only.
634 @item rc 680 @item rc
681 @kindex rc
635 Restores the old contents of the current difference region in buffer C, 682 Restores the old contents of the current difference region in buffer C,
636 which was previously saved when the user invoked one of these commands: 683 which was previously saved when the user invoked one of these commands:
637 @kbd{ac}, @kbd{bc}, which see. This command is enabled in 3-file 684 @kbd{ac}, @kbd{bc}, which see. This command is enabled in 3-file
638 comparison sessions only. 685 comparison sessions only.
639 686
640 @item ## 687 @item ##
688 @kindex ##
641 Tell Ediff to skip over regions that disagree among themselves only in the 689 Tell Ediff to skip over regions that disagree among themselves only in the
642 amount of white space and line breaks. 690 amount of white space and line breaks.
643 691
644 Even though such regions will be skipped over, you can still jump to any 692 Even though such regions will be skipped over, you can still jump to any
645 one of them by typing the region number and then `j'. Typing @kbd{##} 693 one of them by typing the region number and then `j'. Typing @kbd{##}
646 again puts Ediff back in the original state. 694 again puts Ediff back in the original state.
647 695
648 @item #h 696 @item #h
649 @itemx #f 697 @itemx #f
698 @kindex #f
699 @kindex #h
650 Ediff works hard to ameliorate the effects of boredom in the workplace... 700 Ediff works hard to ameliorate the effects of boredom in the workplace...
651 701
652 Quite often differences are due to identical replacements (e.g., the word 702 Quite often differences are due to identical replacements (e.g., the word
653 `foo' is replaced with the word `bar' everywhere). If the number of regions 703 `foo' is replaced with the word `bar' everywhere). If the number of regions
654 with such boring differences exceeds your tolerance threshold, you may be 704 with such boring differences exceeds your tolerance threshold, you may be
665 @kbd{#f} does dual job: it focuses on regions that match the corresponding 715 @kbd{#f} does dual job: it focuses on regions that match the corresponding
666 regular expressions. All other regions will be skipped 716 regular expressions. All other regions will be skipped
667 over. @xref{Selective Browsing}, for more. 717 over. @xref{Selective Browsing}, for more.
668 718
669 @item A 719 @item A
720 @kindex A
670 Toggles the read-only property in buffer A. 721 Toggles the read-only property in buffer A.
671 If file A is under version control and is checked in, it is checked out 722 If file A is under version control and is checked in, it is checked out
672 (with your permission). 723 (with your permission).
673 @item B 724 @item B
725 @kindex B
674 Toggles the read-only property in buffer B. 726 Toggles the read-only property in buffer B.
675 If file B is under version control and is checked in, it is checked out. 727 If file B is under version control and is checked in, it is checked out.
676 @item C 728 @item C
729 @kindex C
677 Toggles the read-only property in buffer C (in 3-file comparison sessions). 730 Toggles the read-only property in buffer C (in 3-file comparison sessions).
678 If file C is under version control and is checked in, it is checked out. 731 If file C is under version control and is checked in, it is checked out.
679 732
680 @item ~ 733 @item ~
734 @kindex ~
681 Swaps the windows where buffers A and B are displayed. If you are comparing 735 Swaps the windows where buffers A and B are displayed. If you are comparing
682 three buffers at once, then this command would rotate the windows among 736 three buffers at once, then this command would rotate the windows among
683 buffers A, B, and C. 737 buffers A, B, and C.
684 738
685 @item i 739 @item i
740 @kindex i
686 Displays all kinds of useful data about the current Ediff session. 741 Displays all kinds of useful data about the current Ediff session.
687 @item D 742 @item D
743 @kindex D
688 Runs @code{ediff-custom-diff-program} on the variants and displays the 744 Runs @code{ediff-custom-diff-program} on the variants and displays the
689 buffer containing the output. This is useful when you must send the output 745 buffer containing the output. This is useful when you must send the output
690 to your Mom. 746 to your Mom.
691 747
692 With a prefix argument, displays the plain @code{diff} output. 748 With a prefix argument, displays the plain @code{diff} output.
693 @xref{Patch and Diff Programs}, for details. 749 @xref{Patch and Diff Programs}, for details.
694 750
695 @item R 751 @item R
752 @kindex R
696 Displays a list of currently active Ediff sessions---the Ediff Registry. 753 Displays a list of currently active Ediff sessions---the Ediff Registry.
697 You can then restart any of these sessions by either clicking on a session 754 You can then restart any of these sessions by either clicking on a session
698 record or by putting the cursor over it and then typing the return key. 755 record or by putting the cursor over it and then typing the return key.
699 756
700 (Some poor souls leave so many active Ediff sessions around that they loose 757 (Some poor souls leave so many active Ediff sessions around that they loose
704 Typing @kbd{R} brings up Ediff Registry only if it is typed into an Ediff 761 Typing @kbd{R} brings up Ediff Registry only if it is typed into an Ediff
705 Control Panel. If you don't have a control panel handy, type this in the 762 Control Panel. If you don't have a control panel handy, type this in the
706 minibuffer: @kbd{M-x eregistry}. @xref{Registry of Ediff Sessions}. 763 minibuffer: @kbd{M-x eregistry}. @xref{Registry of Ediff Sessions}.
707 764
708 @item M 765 @item M
766 @kindex M
709 Shows the session group buffer that invoked the current Ediff session. 767 Shows the session group buffer that invoked the current Ediff session.
710 @xref{Session Groups}, for more information on session groups. 768 @xref{Session Groups}, for more information on session groups.
711 769
712 @item z 770 @item z
771 @kindex z
713 Suspends the current Ediff session. (If you develop a condition known as 772 Suspends the current Ediff session. (If you develop a condition known as
714 Repetitive Ediff Injury---a serious but curable illness---you must change 773 Repetitive Ediff Injury---a serious but curable illness---you must change
715 your current activity. This command tries hard to hide all Ediff-related 774 your current activity. This command tries hard to hide all Ediff-related
716 buffers.) 775 buffers.)
717 776
718 The easiest way to resume a suspended Ediff session is through the registry 777 The easiest way to resume a suspended Ediff session is through the registry
719 of active sessions. @xref{Registry of Ediff Sessions}, for details. 778 of active sessions. @xref{Registry of Ediff Sessions}, for details.
720 @item q 779 @item q
780 @kindex q
721 Terminates this Ediff session. With a prefix argument (e.g.,@kbd{1q}), asks 781 Terminates this Ediff session. With a prefix argument (e.g.,@kbd{1q}), asks
722 if you also want to delete the buffers of the variants. 782 if you also want to delete the buffers of the variants.
723 Modified files and the results of merges are never deleted. 783 Modified files and the results of merges are never deleted.
724 784
725 @item % 785 @item %
786 @kindex %
726 Toggles narrowing in Ediff buffers. Ediff buffers may be narrowed if you 787 Toggles narrowing in Ediff buffers. Ediff buffers may be narrowed if you
727 are comparing only parts of these buffers via the commands 788 are comparing only parts of these buffers via the commands
728 @code{ediff-windows-*} and @code{ediff-regions-*}, which see. 789 @code{ediff-windows-*} and @code{ediff-regions-*}, which see.
729 790
730 @item C-l 791 @item C-l
792 @kindex C-l
731 Restores the usual Ediff window setup. This is the quickest way to resume 793 Restores the usual Ediff window setup. This is the quickest way to resume
732 an Ediff session, but it works only if the control panel of that session is 794 an Ediff session, but it works only if the control panel of that session is
733 visible. 795 visible.
734 796
735 @item $$ 797 @item $$
798 @kindex $$
736 While merging with an ancestor file, Ediff is determined to reduce user's 799 While merging with an ancestor file, Ediff is determined to reduce user's
737 wear and tear by saving him and her much of unproductive, repetitive 800 wear and tear by saving him and her much of unproductive, repetitive
738 typing. If it notices that, say, file A's difference region is identical to 801 typing. If it notices that, say, file A's difference region is identical to
739 the same difference region in the ancestor file, then the merge buffer will 802 the same difference region in the ancestor file, then the merge buffer will
740 automatically get the difference region taken from buffer B. The rationale 803 automatically get the difference region taken from buffer B. The rationale
750 The above command does this for you by skipping the regions where only one 813 The above command does this for you by skipping the regions where only one
751 of the variants clashes with the ancestor but the other variant agrees with 814 of the variants clashes with the ancestor but the other variant agrees with
752 it. Typing @kbd{$$} again undoes this setting. 815 it. Typing @kbd{$$} again undoes this setting.
753 816
754 @item $* 817 @item $*
818 @kindex $*
755 When merging files with large number of differences, it is sometimes 819 When merging files with large number of differences, it is sometimes
756 convenient to be able to skip the difference regions for which you already 820 convenient to be able to skip the difference regions for which you already
757 decided which variant is most appropriate. Typing @kbd{$*} will accomplish 821 decided which variant is most appropriate. Typing @kbd{$*} will accomplish
758 precisely this. 822 precisely this.
759 823
765 things in this respect). If the merge region is marked as `prefer-A' then 829 things in this respect). If the merge region is marked as `prefer-A' then
766 this region will be skipped if it differs from the current difference 830 this region will be skipped if it differs from the current difference
767 region in buffer A, etc. 831 region in buffer A, etc.
768 832
769 @item / 833 @item /
834 @kindex /
770 Displays the ancestor file during merges. 835 Displays the ancestor file during merges.
771 @item & 836 @item &
837 @kindex &
772 In some situations, such as when one of the files agrees with the ancestor file 838 In some situations, such as when one of the files agrees with the ancestor file
773 on a difference region and the other doesn't, Ediff knows what to do: it copies 839 on a difference region and the other doesn't, Ediff knows what to do: it copies
774 the current difference region from the second buffer into the merge buffer. 840 the current difference region from the second buffer into the merge buffer.
775 841
776 In other cases, the right course of action is not that clearcut, and Ediff 842 In other cases, the right course of action is not that clearcut, and Ediff
786 region has the status @samp{default-A} then changing the default action to 852 region has the status @samp{default-A} then changing the default action to
787 @samp{default-B} will also replace this merge-buffer's region with the 853 @samp{default-B} will also replace this merge-buffer's region with the
788 corresponding region from buffer B. 854 corresponding region from buffer B.
789 855
790 @item s 856 @item s
857 @kindex s
791 Causes the merge window shrink to its minimum size, thereby exposing as much 858 Causes the merge window shrink to its minimum size, thereby exposing as much
792 of the variant buffers as possible. Typing `s' again restores 859 of the variant buffers as possible. Typing `s' again restores
793 the original size of that window. 860 the original size of that window.
794 861
795 With a positive prefix argument, this command enlarges the merge window. 862 With a positive prefix argument, this command enlarges the merge window.
805 872
806 The split between the merge window and the variant windows is controlled by 873 The split between the merge window and the variant windows is controlled by
807 the variable @code{ediff-merge-window-share}, which see. 874 the variable @code{ediff-merge-window-share}, which see.
808 875
809 @item + 876 @item +
877 @kindex +
810 Combines the difference regions from buffers A and B and copies the 878 Combines the difference regions from buffers A and B and copies the
811 result into the merge buffer. @xref{Merging and diff3}, and the 879 result into the merge buffer. @xref{Merging and diff3}, and the
812 variables @code{ediff-combine-diffs} and @code{ediff-combination-pattern}. 880 variables @code{ediff-combine-diffs} and @code{ediff-combination-pattern}.
813 881
814 882
815 @item = 883 @item =
884 @kindex =
816 You may run into situations when a large chunk of text in one file has been 885 You may run into situations when a large chunk of text in one file has been
817 edited and then moved to a different place in another file. In such a case, 886 edited and then moved to a different place in another file. In such a case,
818 these two chunks of text are unlikely to belong to the same difference 887 these two chunks of text are unlikely to belong to the same difference
819 region, so the refinement feature of Ediff will not be able to tell you 888 region, so the refinement feature of Ediff will not be able to tell you
820 what exactly differs inside these chunks. Since eyeballing large pieces of 889 what exactly differs inside these chunks. Since eyeballing large pieces of
833 be asked which two of the three buffers to use). 902 be asked which two of the three buffers to use).
834 903
835 @emph{If you are merging files or buffers (with or without ancestor):} 904 @emph{If you are merging files or buffers (with or without ancestor):}
836 Ediff would take the current region in the merge buffer and compare 905 Ediff would take the current region in the merge buffer and compare
837 it to the current region in the buffer of your choice (A or B). 906 it to the current region in the buffer of your choice (A or B).
907
908 @emph{Note: In all these cases you must first switch to the appropriate
909 Emacs buffers and manually set the regions that you want to compare.}
838 910
839 Highlighting set by the parent Ediff session is removed, to avoid interference 911 Highlighting set by the parent Ediff session is removed, to avoid interference
840 with highlighting of the child session. When done with the child session, type 912 with highlighting of the child session. When done with the child session, type
841 @kbd{C-l} in the parent's control panel to restore the original highlighting. 913 @kbd{C-l} in the parent's control panel to restore the original highlighting.
842 914
2327 Sam Steingold (sds@@goems.com), 2399 Sam Steingold (sds@@goems.com),
2328 Leigh L Klotz (klotz@@adoc.xerox.com), 2400 Leigh L Klotz (klotz@@adoc.xerox.com),
2329 Fritz Knabe (Fritz.Knabe@@ecrc.de), 2401 Fritz Knabe (Fritz.Knabe@@ecrc.de),
2330 Heinz Knutzen (hk@@informatik.uni-kiel.d400.de), 2402 Heinz Knutzen (hk@@informatik.uni-kiel.d400.de),
2331 Andrew Koenig (ark@@research.att.com), 2403 Andrew Koenig (ark@@research.att.com),
2404 Hannu Koivisto (azure@@iki.fi),
2332 Ken Laprade (laprade@@dw3f.ess.harris.com), 2405 Ken Laprade (laprade@@dw3f.ess.harris.com),
2333 Will C Lauer (wcl@@cadre.com), 2406 Will C Lauer (wcl@@cadre.com),
2334 Richard Levitte (levitte@@e.kth.se), 2407 Richard Levitte (levitte@@e.kth.se),
2335 Mike Long (mike.long@@analog.com), 2408 Mike Long (mike.long@@analog.com),
2336 Martin Maechler (maechler@@stat.math.ethz.ch), 2409 Martin Maechler (maechler@@stat.math.ethz.ch),
2337 Simon Marshall (simon@@gnu.org), 2410 Simon Marshall (simon@@gnu.org),
2411 Paul C. Meuse (pmeuse@@delcomsys.com),
2338 Richard Mlynarik (mly@@adoc.xerox.com), 2412 Richard Mlynarik (mly@@adoc.xerox.com),
2339 Stefan Monnier (monnier@@cs.yale.edu), 2413 Stefan Monnier (monnier@@cs.yale.edu),
2340 Chris Murphy (murphycm@@sun.aston.ac.uk), 2414 Chris Murphy (murphycm@@sun.aston.ac.uk),
2341 Erik Naggum (erik@@naggum.no), 2415 Erik Naggum (erik@@naggum.no),
2342 Eyvind Ness (Eyvind.Ness@@hrp.no), 2416 Eyvind Ness (Eyvind.Ness@@hrp.no),