Emacs is the Best Way to Sort and Play Your Videos

Other Tools I have tried

  • Total Commander
  • Double Commander
  • Windows Explorer
  • Files
  • Dolphin File Manager
  • Nautilus
  • Explorer++
  • Directory Opus

Enable async for faster copying

In Emacs 29, `dired-async-mode` along with other async features are included out of the box.

;; EMACS-ASYNC
;; Asynchronous processing spawns Emacs instances to do multiple processing for you
;; async.el is a module for doing asynchronous processing in Emacs.

;; run commands in dired asynchronously
(autoload 'dired-async-mode "dired-async.el" nil t)
(dired-async-mode 1)
;; Your async implementation should avoid user interaction

Enable Dired to open files in their default applications

;; Xah Lee's code adjusted so that `only' files under the cursor are opened in the default external app and NOT marked files.

(defun xah-open-in-external-app (&optional Fname)
  "Open the file under the cursor or specified file in external app.
When called in emacs lisp, if Fname is given, open that.

URL `http://xahlee.info/emacs/emacs/emacs_dired_open_file_in_ext_apps.html'
Version: 2019-11-04 2023-04-05 2023-06-26"
  (interactive)
  (let ((xfile (or Fname
       (if (eq major-mode 'dired-mode)
           (dired-get-file-for-visit)
         buffer-file-name))))
    (if xfile
  (let ((xoutBuf (get-buffer-create "*xah open in external app*")))
    (cond
     ((eq system-type 'windows-nt)
      (start-process "xah open in external app" xoutBuf
         "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
         "-Command" "Invoke-Item" "-LiteralPath"
         (format "'%s'" (if (string-match "'" xfile) (replace-match "`'" t t xfile) xfile))))
     ((eq system-type 'darwin)
      (start-process "xah open in external app" xoutBuf "open" xfile))
     ((eq system-type 'gnu/linux)
      (start-process "xah open in external app" xoutBuf "xdg-open" xfile))
     ((eq system-type 'berkeley-unix)
      (let ((process-connection-type nil))
        (start-process "xah open in external app" nil "xdg-open" xfile))))
  (message "No file to open")))
    (message "No file associated with this buffer or under cursor")))

;; -------------------------------------------------------------------block-ends-here

(defun xah-show-in-desktop ()
  "Show current file in desktop.
 (Mac Finder, Microsoft Windows File Explorer, Linux file manager)
This command can be called when in a file buffer or in `dired'.

URL `http://xahlee.info/emacs/emacs/emacs_show_in_desktop.html'
Version: 2020-11-20 2022-08-19 2023-06-26 2023-09-09"
  (interactive)
  (let ((xpath (if (eq major-mode 'dired-mode)
       (if (eq nil (dired-get-marked-files))
           default-directory
         (car (dired-get-marked-files)))
     (if buffer-file-name buffer-file-name default-directory))))
    (cond
     ((eq system-type 'windows-nt)
      (shell-command (format "PowerShell -Command invoke-item '%s'" (expand-file-name default-directory )))
      ;; (let ((xcmd (format "Explorer /select,%s"
      ;;                     (replace-regexp-in-string "/" "\\" xpath t t)
      ;;                     ;; (shell-quote-argument (replace-regexp-in-string "/" "\\" xpath t t ))
      ;;                     )))
      ;;   (shell-command xcmd))
      )
     ((eq system-type 'darwin)
      (shell-command
       (concat "open -R " (shell-quote-argument xpath))))
     ((eq system-type 'gnu/linux)
      (call-process shell-file-name nil 0 nil
        shell-command-switch
        (format "%s %s"
          "xdg-open"
          (file-name-directory xpath)))
      ;; (shell-command "xdg-open .") ;; 2013-02-10 this sometimes froze emacs till the folder is closed. eg with nautilus
      ))))

(with-eval-after-load 'dired
  (define-key dired-mode-map (kbd "M-<return>") 'xah-open-in-external-app)
  (define-key dired-mode-map (kbd "C-<return>") 'xah-show-in-desktop))

Enable hide-details-mode

(add-hook 'dired-mode-hook 'dired-hide-details-mode)
(add-hook 'dired-mode-hook 'dired-omit-mode)

Toggle using Shift-(

Sort files by various criteria

C-u s

My default setting:

(setq dired-listing-switches "-alt --dired -G")

Sort by human readable size:

-alS --dired -Gh

Reduce the size of the font in the minibuffer for file names

;; Reduce size of font in minibuffer for font names
(set-face-attribute 'minibuffer-prompt nil :height 0.85)

Use normal Dired operations to sort, copy, move, video files

Create directories: Shift-+
Marked Files
Move Files
Copy Files
Delete Files
Rename files C-x C-q (Use search and replace)