Emacs Init: Dired Config
Tips for setting up dired.
Jump to File in Dired
In any open file, Alt+x dired-jump
【Ctrl+x Ctrl+j】 to jump to the directory of current buffer.
Before Emacs 28 (Released 2022-04) , you need to load a lib.
Put this in your Emacs Init File:
;; for dired-jump (when (< emacs-major-version 28) (require 'dired-x))
Open All Marked Files
to open all marked files, do
Ctrl+u Alt+x dired-do-find-marked-files
require dired-x.
(require 'dired-x) ;; for dired-do-find-marked-files
Allow Delete Directory, Copy Directory
You can copy or delete a dir, including all subdirectories.
Put this in your Emacs Init File:
;; allow dired to delete or copy dir ;; 'top means ask every time ;; 'always means no asking (setq dired-recursive-copies 'top) (setq dired-recursive-deletes 'top)
Smart Suggest Target Dir
When you do copy files, emacs prompts for a target dir. You can make emacs automatically suggest the target dir on the split pane. 〔see Emacs: Split Window〕
Same for rename R and others.
For example:
- Alt+x
dired
- Alt+x
split-window-below
- navigate to a target dir.
- press C to copy, the other dir in the split pane will be default destination.
Put this in your Emacs Init File:
(setq dired-dwim-target t)
Hide File Owner Permission Info
In dired, Alt+x dired-hide-details-mode
【(】.
If you want it always on, add a hook. Like this:
(defun my-dired-init () "to be run as hook for `dired-mode'." (dired-hide-details-mode 1)) (add-hook 'dired-mode-hook 'my-dired-init)
Make dired use the same buffer for viewing directory
Dired leaves a trail of directories. After a while, you have a lot buffers of dirs.
If you want dired always use the same buffer, put this in your Emacs Init File:
(require 'dired ) (when (>= emacs-major-version 28) (setq dired-kill-when-opening-new-dired-buffer t)) (when (< emacs-major-version 28) (progn (define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file) ; was dired-advertised-find-file (define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file ".."))) ; was dired-up-directory ))
Show Human Readable File Size
(setq dired-listing-switches "-alh") ;; default is "-al"
Make Dired Use Easier Keys
Make keys easier to type. Make all keys a key sequence sans modifier key.
You can move other frequently dired commands you use that have difficult key, to a leader key sequence.
(defun my-dired-init () "Config `dired'. URL `http://xahlee.info/emacs/emacs/emacs_dired_tips.html' Version 2021-07-30 2023-03-15 2023-04-05" (interactive) (define-key dired-mode-map (kbd ",") #'dired-prev-dirline) (define-key dired-mode-map (kbd ".") #'dired-next-dirline) (define-key dired-mode-map (kbd "1") #'dired-do-shell-command) (define-key dired-mode-map (kbd "6") #'dired-up-directory) (define-key dired-mode-map (kbd "9") #'dired-hide-details-mode) (define-key dired-mode-map (kbd "b") #'dired-do-byte-compile) (define-key dired-mode-map (kbd "`") #'dired-flag-backup-files) (define-key dired-mode-map (kbd "e") nil) (define-key dired-mode-map (kbd "e c") #'dired-do-copy) (define-key dired-mode-map (kbd "e d") #'dired-do-delete) (define-key dired-mode-map (kbd "e g") #'dired-mark-files-containing-regexp) (define-key dired-mode-map (kbd "e h") #'dired-hide-details-mode) (define-key dired-mode-map (kbd "e m") #'dired-mark-files-regexp) (define-key dired-mode-map (kbd "e n") #'dired-create-directory) (define-key dired-mode-map (kbd "e r") #'dired-do-rename) (define-key dired-mode-map (kbd "e u") #'dired-unmark-all-marks) ;; ) (progn (require 'dired ) (add-hook 'dired-mode-hook #'my-dired-init))
〔see Ban Key Chords〕
Dired on MS Windows Config
Show Dir First
(setq ls-lisp-dirs-first t) ;; default is nil
Ignore Case Order
(setq ls-lisp-ignore-case t) ;; default is nil