]> git.earman.xyz Git - emacsinit.git/commitdiff
Add defun and binding to change sort in dired
authorrearman <rearman@r717.net>
Wed, 31 Dec 2025 18:56:10 +0000 (13:56 -0500)
committerrearman <rearman@r717.net>
Wed, 31 Dec 2025 18:56:10 +0000 (13:56 -0500)
init.el
re/re-dired-defuns.el

diff --git a/init.el b/init.el
index bcc6da9aee3a346ea79e3bcff30a0d42de5a9ee0..90ad05fc273d1d0af208e12c522c80aeaaf7f57c 100644 (file)
--- a/init.el
+++ b/init.el
@@ -90,7 +90,7 @@
       dired-vc-rename-file t
       dired-auto-revert-buffer t
       dired-hide-details-hide-symlink-targets nil
-      dired-dwim-target 'dired-dwim-target-recent)
+      dired-dwim-target t)
 
 (add-hook 'dired-mode-hook
          (lambda ()
@@ -98,6 +98,9 @@
              (keymap-set dired-mode-map
                          "<return>"
                          #'dired-find-alternate-file)
+             (keymap-set dired-mode-map
+                         "s"
+                         #'re/dired-sort)
              (keymap-set dired-mode-map
                          "F"
                          #'re/dired-find-marked-files)
index 548e57c7ec31adc07f4f72b6662d96045a6f783d..617a0ef3173185fcc986bd09f6b9afae76edf0b9 100644 (file)
   (interactive)
   (mapc 'find-file (reverse (dired-get-marked-files))))
 
+(defun re/dired-sort ()
+  "Change sort order of dired dir."
+  (interactive)
+  (let ((smenu '(("name" . "-Ahl")
+                ("mdate" . "-Ahlt")
+                ("adate" . "-Ahltu")
+                ("size" . "-AhlS")
+                ("dir" . "-Ahl --group-directories-first")))
+       ssortBy)
+    (setq ssortBy (completing-read "Sort by (default name):" smenu nil t nil nil (caar smenu)))
+    (dired-sort-other (cdr (assoc ssortBy smenu)))))
+
 (provide 're-dired-defuns)
 ;;; re-dired-defuns.el ends here