diff --git a/init.el b/init.el index a60b4ac..7aa67a6 100644 --- a/init.el +++ b/init.el @@ -637,7 +637,8 @@ db/convert-lf-to-crlf-in-buffer db/convert-crlf-to-lf-in-buffer db/sync-magit-repos-from-projectile - db/replace-variables-in-string)) + db/replace-variables-in-string + db/dired-ediff-files)) (use-package db-hydras :commands (hydra-toggle/body @@ -1982,7 +1983,7 @@ respectively." (use-package dired :bind (:map dired-mode-map - ("e" . ora-ediff-files) + ("e" . db/dired-ediff-files) ("z" . dired-get-size) ([remap beginning-of-buffer] . dired-back-to-top) ([remap end-of-buffer] . dired-jump-to-bottom) @@ -2057,28 +2058,6 @@ respectively." (dolist (extension '(".out" ".synctex.gz" ".thm")) (add-to-list 'dired-latex-unclean-extensions extension)) - (defun ora-ediff-files () - "Compare marked files in dired with ediff." - ;; from: https://oremacs.com/2017/03/18/dired-ediff/ - (interactive) - (let ((files (dired-get-marked-files)) - (wnd (current-window-configuration))) - (if (<= (length files) 2) - (let ((file1 (car files)) - (file2 (if (cdr files) - (cadr files) - (read-file-name - "file: " - (dired-dwim-target-directory))))) - (if (file-newer-than-file-p file1 file2) - (ediff-files file2 file1) - (ediff-files file1 file2)) - (add-hook 'ediff-after-quit-hook-internal - #'(lambda () - (setq ediff-after-quit-hook-internal nil) - (set-window-configuration wnd)))) - (error "No more than 2 files should be marked")))) - (defun dired-back-to-top () "Jump to first non-trivial line in dired." (interactive) diff --git a/site-lisp/db-utils.el b/site-lisp/db-utils.el index 9acd457..ac6ff83 100644 --- a/site-lisp/db-utils.el +++ b/site-lisp/db-utils.el @@ -477,6 +477,29 @@ numbers allowed)." #'string=))) string)) +(defun db/dired-ediff-files () + "Compare marked files in dired with ediff. + +From: https://oremacs.com/2017/03/18/dired-ediff/." + (interactive) + (let ((files (dired-get-marked-files)) + (wnd (current-window-configuration))) + (if (<= (length files) 2) + (let ((file1 (car files)) + (file2 (if (cdr files) + (cadr files) + (read-file-name + "file: " + (dired-dwim-target-directory))))) + (if (file-newer-than-file-p file1 file2) + (ediff-files file2 file1) + (ediff-files file1 file2)) + (add-hook 'ediff-after-quit-hook-internal + #'(lambda () + (setq ediff-after-quit-hook-internal nil) + (set-window-configuration wnd)))) + (error "No more than 2 files should be marked")))) + ;;; Base45 Decoding