Variable: ediff-mode-map

ediff-mode-map is a buffer-local variable defined in ediff-util.el.gz.

Documentation

Local keymap used in Ediff mode.

This is local to each Ediff Control Panel, so they may vary from invocation to invocation.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
(defun ediff-setup-keymap ()
  "Set up the keymap used in the control buffer of Ediff."
  (setq ediff-mode-map (make-sparse-keymap))
  (suppress-keymap ediff-mode-map)

  (define-key ediff-mode-map [mouse-2] #'ediff-help-for-quick-help)
  (define-key ediff-mode-map "\C-m"  #'ediff-help-for-quick-help)

  (define-key ediff-mode-map "p" #'ediff-previous-difference)
  (define-key ediff-mode-map "\C-?" #'ediff-previous-difference)
  (define-key ediff-mode-map [delete] #'ediff-previous-difference)
  (define-key ediff-mode-map "\C-h" (if ediff-no-emacs-help-in-control-buffer
					#'ediff-previous-difference nil))
  (define-key ediff-mode-map [backspace] #'ediff-previous-difference)
  (define-key ediff-mode-map [?\S-\ ] #'ediff-previous-difference)
  (define-key ediff-mode-map "n" #'ediff-next-difference)
  (define-key ediff-mode-map " " #'ediff-next-difference)
  (define-key ediff-mode-map "j" #'ediff-jump-to-difference)
  (define-key ediff-mode-map "g"  nil)
  (define-key ediff-mode-map "ga" #'ediff-jump-to-difference-at-point)
  (define-key ediff-mode-map "gb" #'ediff-jump-to-difference-at-point)
  (define-key ediff-mode-map "q" #'ediff-quit)
  (define-key ediff-mode-map "D" #'ediff-show-diff-output)
  (define-key ediff-mode-map "z" #'ediff-suspend)
  (define-key ediff-mode-map "\C-l" #'ediff-recenter)
  (define-key ediff-mode-map "|" #'ediff-toggle-split)
  (define-key ediff-mode-map "h" #'ediff-toggle-hilit)
  (or ediff-word-mode
      (define-key ediff-mode-map "@" #'ediff-toggle-autorefine))
  (if ediff-narrow-job
      (define-key ediff-mode-map "%" #'ediff-toggle-narrow-region))
  (define-key ediff-mode-map "~" #'ediff-swap-buffers)
  (define-key ediff-mode-map "v" #'ediff-scroll-vertically)
  (define-key ediff-mode-map "\C-v" #'ediff-scroll-vertically)
  (define-key ediff-mode-map "^" #'ediff-scroll-vertically)
  (define-key ediff-mode-map "\M-v" #'ediff-scroll-vertically)
  (define-key ediff-mode-map "V" #'ediff-scroll-vertically)
  (define-key ediff-mode-map "<" #'ediff-scroll-horizontally)
  (define-key ediff-mode-map ">" #'ediff-scroll-horizontally)
  (define-key ediff-mode-map "i" #'ediff-status-info)
  (define-key ediff-mode-map "E" #'ediff-documentation)
  (define-key ediff-mode-map "?" #'ediff-toggle-help)
  (define-key ediff-mode-map "!" #'ediff-update-diffs)
  (define-key ediff-mode-map "M" #'ediff-show-current-session-meta-buffer)
  (define-key ediff-mode-map "R" #'ediff-show-registry)
  (or ediff-word-mode
      (define-key ediff-mode-map "*" #'ediff-make-or-kill-fine-diffs))
  (define-key ediff-mode-map "a"  nil)
  (define-key ediff-mode-map "b"  nil)
  (define-key ediff-mode-map "r"  nil)
  (cond (ediff-merge-job
	 ;; Will barf if no ancestor
	 (define-key ediff-mode-map "/" #'ediff-toggle-show-ancestor)
	 ;; In merging, we allow only A->C and B->C copying.
	 (define-key ediff-mode-map "a" #'ediff-copy-A-to-C)
	 (define-key ediff-mode-map "b" #'ediff-copy-B-to-C)
	 (define-key ediff-mode-map "r" #'ediff-restore-diff-in-merge-buffer)
	 (define-key ediff-mode-map "s" #'ediff-shrink-window-C)
	 (define-key ediff-mode-map "+" #'ediff-combine-diffs)
	 (define-key ediff-mode-map "$"  nil)
	 (define-key ediff-mode-map "$$" #'ediff-toggle-show-clashes-only)
	 (define-key ediff-mode-map "$*" #'ediff-toggle-skip-changed-regions)
	 (define-key ediff-mode-map "&"  #'ediff-re-merge))
	(ediff-3way-comparison-job
	 (define-key ediff-mode-map "ab" #'ediff-copy-A-to-B)
	 (define-key ediff-mode-map "ba" #'ediff-copy-B-to-A)
	 (define-key ediff-mode-map "ac" #'ediff-copy-A-to-C)
	 (define-key ediff-mode-map "bc" #'ediff-copy-B-to-C)
	 (define-key ediff-mode-map "c" nil)
	 (define-key ediff-mode-map "ca" #'ediff-copy-C-to-A)
	 (define-key ediff-mode-map "cb" #'ediff-copy-C-to-B)
	 (define-key ediff-mode-map "ra" #'ediff-restore-diff)
	 (define-key ediff-mode-map "rb" #'ediff-restore-diff)
	 (define-key ediff-mode-map "rc" #'ediff-restore-diff)
	 (define-key ediff-mode-map "C"  #'ediff-toggle-read-only))
	(t ; 2-way comparison
	 (define-key ediff-mode-map "a"  #'ediff-copy-A-to-B)
	 (define-key ediff-mode-map "b"  #'ediff-copy-B-to-A)
	 (define-key ediff-mode-map "ra" #'ediff-restore-diff)
	 (define-key ediff-mode-map "rb" #'ediff-restore-diff))
	) ; cond
  (define-key ediff-mode-map "G" #'ediff-submit-report)
  (define-key ediff-mode-map "#"  nil)
  (define-key ediff-mode-map "#h"  #'ediff-toggle-regexp-match)
  (define-key ediff-mode-map "#f"  #'ediff-toggle-regexp-match)
  (define-key ediff-mode-map "#c"  #'ediff-toggle-ignore-case)
  (or ediff-word-mode
      (define-key ediff-mode-map "##"  #'ediff-toggle-skip-similar))
  (define-key ediff-mode-map "o"   nil)
  (define-key ediff-mode-map "A"  #'ediff-toggle-read-only)
  (define-key ediff-mode-map "B"  #'ediff-toggle-read-only)
  (define-key ediff-mode-map "w"   nil)
  (define-key ediff-mode-map "wa"  #'ediff-save-buffer)
  (define-key ediff-mode-map "wb"  #'ediff-save-buffer)
  (define-key ediff-mode-map "wd"  #'ediff-save-buffer)
  (define-key ediff-mode-map "="   #'ediff-inferior-compare-regions)
  (if (and (fboundp 'ediff-show-patch-diagnostics) (ediff-patch-job))
      (define-key ediff-mode-map "P"  #'ediff-show-patch-diagnostics))
  (if ediff-3way-job
      (progn
	(define-key ediff-mode-map "wc" #'ediff-save-buffer)
	(define-key ediff-mode-map "gc" #'ediff-jump-to-difference-at-point)
	))

  (define-key ediff-mode-map "m" #'ediff-toggle-wide-display)

  ;; Allow ediff-mode-map to be referenced indirectly
  (fset 'ediff-mode-map ediff-mode-map)
  (run-hooks 'ediff-keymap-setup-hook))