I have the following function which runs ediff on the files I have marked in a dired buffer:
(defun mkm/ediff-marked-pair ()
"Run ediff-files on a pair of files marked in dired buffer"
(interactive)
(let ((marked-files (dired-get-marked-files nil)))
(if (not (= (length marked-files) 2))
(message "mark exactly 2 files")
(ediff-files (nth 0 marked-files)
(nth 1 marked-files)))))
It only works on files in the same directory, how could I make it work for files I mark in different dired directories?
Here is my solution, it works for files marked in the same dired buffer and also for files in different buffers.