From 5457f5552ad91cb9c88552bc22122d3dbd93bc49 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Fri, 31 Oct 2014 23:21:57 -0400 Subject: Add command ediff-with-other-window --- lisp/init-external.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lisp/init-external.el') diff --git a/lisp/init-external.el b/lisp/init-external.el index 9732b58..c82b32d 100644 --- a/lisp/init-external.el +++ b/lisp/init-external.el @@ -97,10 +97,24 @@ monitor setup)." (revert-buffer) (view-mode 1)) +(defun km/ediff-with-other-window () + "Run Ediff on current window's file and other window's file." + (interactive) + (let ((windows (window-list))) + (unless (= (length windows) 2) + (user-error "Function restricted to two-window frames")) + (-if-let* ((file-a (buffer-file-name + (window-buffer (car windows)))) + (file-b (buffer-file-name + (window-buffer (cadr windows))))) + (ediff file-a file-b) + (user-error "At least one buffer is not visiting a file")))) + (setq ediff-window-setup-function 'ediff-setup-windows-plain) (define-key km/external-map "d" 'diff) (define-key km/external-map "e" 'ediff) +(define-key km/external-map "o" 'km/ediff-with-other-window) (after 'diff (define-key diff-mode-map (kbd "C-c C-g") 'km/revert-buffer-and-view)) -- cgit v1.2.3