Merge branch 'develop' into dired

This commit is contained in:
Henrik Lissner 2019-09-02 00:51:52 -04:00 committed by GitHub
commit 3c4252ffe7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
295 changed files with 8141 additions and 6654 deletions

View file

@ -0,0 +1,46 @@
#+TITLE: emacs/dired
#+DATE: May 27, 2018
#+SINCE: v2.0
#+STARTUP: inlineimages
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#keybindings][Keybindings]]
* Description
This module provides configuration for dired.
** Module Flags
+ =+ranger= Enables dired to be more like [[https://github.com/ranger/ranger][ranger]].
+ =+icons= Enables the display of fancy icons depending on file types in dired
buffers.
** Plugins
+ [[https:https://github.com/syohex/emacs-dired-k][dired-k]]
+ [[https://github.com/purcell/diredfl][diredfl]]
+ [[https://github.com/stsquad/dired-rsync][dired-rsync]]
+ =+ranger=
+ [[https://github.com/ralesi/ranger.el][ranger]]
+ =+icons=
+ [[https://github.com/jtbm37/all-the-icons-dired][all-the-icons-dired]]
* Prerequisites
This module has no prerequisites *except on BSDs* where =GNU ls= (~gls~) is
needed for it to work properly (Doom doctor will notify you if it is missing).
* Keybindings
| Keybind | Description |
|-----------+------------------------------|
| =SPC f d= | Find directory with dired |
| =q= | Exit dired buffer |
| =C-c C-r= | Run =dired-rsync= |
| =C-c C-e= | Rename entries with =wdired= |
Other keybindings can be found on the official [[https://www.gnu.org/software/emacs/refcards/pdf/dired-ref.pdf][Dired reference card]].

View file

@ -1,11 +1,15 @@
;;; tools/dired/config.el -*- lexical-binding: t; -*-
(def-package! dired
(use-package! dired
:commands dired-jump
:init
(setq ;; Always copy/delete recursively
dired-recursive-copies 'always
dired-recursive-deletes 'top
;; Instantly revert Dired buffers on re-visiting them, with no message.
;; (A message is shown if insta-revert is either disabled or determined
;; dynamically by setting this variable to a function.)
dired-auto-revert-buffer t
;; Auto refresh dired, but be quiet about it
dired-hide-details-hide-symlink-targets nil
;; files
@ -33,15 +37,15 @@
"C-c C-e" #'wdired-change-to-wdired-mode))
(def-package! dired-rsync
(use-package! dired-rsync
:general (dired-mode-map "C-c C-r" #'dired-rsync))
(def-package! diredfl
(use-package! diredfl
:hook (dired-mode . diredfl-mode))
(def-package! diff-hl
(use-package! diff-hl
:hook (dired-mode . diff-hl-dired-mode)
:init
(when (featurep! :tools magit)
@ -51,7 +55,7 @@
(diff-hl-margin-mode))
(def-package! ranger
(use-package! ranger
:when (featurep! +ranger)
:after dired
:init
@ -64,24 +68,24 @@
(set-popup-rule! "^\\*ranger" :ignore t)
(defun +dired*cleanup-header-line ()
(defadvice! +dired--cleanup-header-line-a ()
"Ranger fails to clean up `header-line-format' when it is closed, so..."
:before #'ranger-revert
(dolist (buffer (buffer-list))
(when (buffer-live-p buffer)
(with-current-buffer buffer
(when (equal header-line-format '(:eval (ranger-header-line)))
(setq header-line-format nil))))))
(advice-add #'ranger-revert :before #'+dired*cleanup-header-line)
(defun +dired*cleanup-mouse1-bind ()
(defadvice! +dired--cleanup-mouse1-bind-a ()
"Ranger binds an anonymous function to mouse-1 after previewing a buffer
that prevents the user from escaping the window with the mouse. This command is
never cleaned up if the buffer already existed before ranger was initialized, so
we have to clean it up ourselves."
:after #'ranger-setup-preview
(when (window-live-p ranger-preview-window)
(with-current-buffer (window-buffer ranger-preview-window)
(local-unset-key [mouse-1]))))
(advice-add #'ranger-setup-preview :after #'+dired*cleanup-mouse1-bind)
(setq ranger-cleanup-on-disable t
ranger-excluded-extensions '("mkv" "iso" "mp4")
@ -91,13 +95,16 @@ we have to clean it up ourselves."
ranger-hide-cursor nil))
(def-package! all-the-icons-dired
(use-package! all-the-icons-dired
:when (featurep! +icons)
:hook (dired-mode . all-the-icons-dired-mode))
(def-package! dired-x
(use-package! dired-x
:unless (featurep! +ranger)
:hook (dired-mode . dired-omit-mode)
:config
(setq dired-omit-verbose nil))
(setq dired-omit-verbose nil)
;; Disable the prompt about whether I want to kill the Dired buffer for a
;; deleted directory. Of course I do!
(setq dired-clean-confirm-killing-deleted-buffers nil))