My ediff Settings

Watch the Video Here

(defun dired-ediff-marked-files ()
  (interactive)
  (let ((marked-files (dired-get-marked-files)))
    (unless (= (length marked-files) 2)
      (error "You need to mark exactly two files to compare"))
    (ediff-files (car marked-files) (cadr marked-files))))

(with-eval-after-load 'dired
  (define-key dired-mode-map "=" nil)
  (define-key dired-mode-map "=" 'dired-ediff-marked-files))

(setq ediff-diff-options "-w")
(setq ediff-split-window-function 'split-window-horizontally)

(defvar my-ediff-bwin-config nil "Window configuration before ediff.")
(defcustom my-ediff-bwin-reg ?b
  "*Register to be set up to hold `my-ediff-bwin-config'
  configuration.")

(defun my-ediff-bsh ()
  (setq my-ediff-bwin-config (current-window-configuration))
  (when (characterp my-ediff-bwin-reg)
    (set-register my-ediff-bwin-reg
      (list my-ediff-bwin-config (point-marker)))))

(defun my-ediff-qh ()
  "Function to be called when ediff quits."
  (when my-ediff-bwin-config
    (set-window-configuration my-ediff-bwin-config)))

(add-hook 'ediff-before-setup-hook 'my-ediff-bsh)
(add-hook 'ediff-quit-hook 'my-ediff-qh)

(provide 'my-ediff)

Return to Home