;;; Dired file manager and prot-dired.el extras (use-package dired :ensure nil :commands (dired) :config (setq dired-recursive-copies 'always) (setq dired-recursive-deletes 'always) (setq delete-by-moving-to-trash t)) (use-package dired :ensure nil :commands (dired) :config (setq insert-directory-program (or (executable-find "ls") "/opt/homebrew/bin/gls")) (setq dired-listing-switches "-AGFhlv --group-directories-first --time-style=long-iso")) (use-package dired :ensure nil :commands (dired) :config (setq dired-dwim-target t)) (use-package dired :ensure nil :commands (dired) :config (setq dired-auto-revert-buffer #'dired-directory-changed-p) ; also see `dired-do-revert-buffer' (setq dired-make-directory-clickable t) ; Emacs 29.1 (setq dired-free-space nil) ; Emacs 29.1 (setq dired-mouse-drag-files t) ; Emacs 29.1 (add-hook 'dired-mode-hook #'dired-hide-details-mode) (add-hook 'dired-mode-hook #'hl-line-mode) ;; In Emacs 29 there is a binding for `repeat-mode' which lets you ;; repeat C-x C-j just by following it up with j. For me, this is a ;; problem as j calls `dired-goto-file', which I often use. (define-key dired-jump-map (kbd "j") nil)) ;;; Multi-occur in project and dired! (use-package dired :ensure nil :bind ( :map dired-mode-map ("M-s a m" . noccur-dired)) :config (defun noccur-dired (regexp &optional nlines) "Perform `multi-occur' with REGEXP in all dired marked files. When called with a prefix argument NLINES, display NLINES lines before and after." (interactive (occur-read-primary-args)) (multi-occur (mapcar #'find-file (dired-get-marked-files)) regexp nlines))) (use-package dired-aux :ensure nil :after dired :bind ( :map dired-mode-map ("C-+" . dired-create-empty-file) ("M-s f" . nil) ("C-<return>" . dired-do-open) ; Emacs 30 ("C-x v v" . dired-vc-next-action)) ; Emacs 28 :config (setq dired-isearch-filenames 'dwim) (setq dired-create-destination-dirs 'ask) ; Emacs 27 (setq dired-vc-rename-file t) ; Emacs 27 (setq dired-do-revert-buffer (lambda (dir) (not (file-remote-p dir)))) ; Emacs 28 (setq dired-create-destination-dirs-on-trailing-dirsep t)) ; Emacs 29 (use-package dired-x :ensure nil :after dired :bind ( :map dired-mode-map ("I" . dired-info)) :config (setq dired-clean-up-buffers-too t) (setq dired-clean-confirm-killing-deleted-buffers t) (setq dired-x-hands-off-my-keys t) ; easier to show the keys I use (setq dired-bind-man nil) (setq dired-bind-info nil)) (use-package dired-subtree :ensure t :after dired :bind ( :map dired-mode-map ("<tab>" . dired-subtree-toggle) ("TAB" . dired-subtree-toggle) ("<backtab>" . dired-subtree-remove) ("S-TAB" . dired-subtree-remove)) :config (setq dired-subtree-use-backgrounds nil)) (use-package wdired :ensure nil :commands (wdired-change-to-wdired-mode) :config (setq wdired-allow-to-change-permissions t) (setq wdired-create-parent-directories t)) ;;; dired-like mode for the trash (trashed.el) (use-package trashed :ensure t :commands (trashed) :config (setq trashed-action-confirmer 'y-or-n-p) (setq trashed-use-header-line t) (setq trashed-sort-key '("Date deleted" . t)) (setq trashed-date-format "%Y-%m-%d %H:%M:%S")) (provide 'nebkor-dired)