doomemacs/modules/tools/dired/config.el

47 lines
1.5 KiB
EmacsLisp
Raw Normal View History

2017-02-19 18:53:38 -05:00
;;; emacs/dired/config.el
(setq ;; Always copy/delete recursively
dired-recursive-copies 'always
dired-recursive-deletes 'top
;; Auto refresh dired, but be quiet about it
global-auto-revert-non-file-buffers t
auto-revert-verbose nil)
(defun +dired|sort-directories-first ()
"List directories first in dired buffers."
(save-excursion
(let (buffer-read-only)
(forward-line 2) ;; beyond dir. header
(sort-regexp-fields t "^.*$" "[ ]*." (point) (point-max))))
(and (featurep 'xemacs)
(fboundp 'dired-insert-set-properties)
(dired-insert-set-properties (point-min) (point-max)))
(set-buffer-modified-p nil))
(add-hook 'dired-after-readin-hook '+dired|sort-directories-first)
;; Automatically create missing directories when creating new files
(defun +dired|create-non-existent-directory ()
(let ((parent-directory (file-name-directory buffer-file-name)))
(when (and (not (file-exists-p parent-directory))
(y-or-n-p (format "Directory `%s' does not exist! Create it?" parent-directory)))
(make-directory parent-directory t))))
(push '+dired|create-non-existent-directory find-file-not-found-functions)
;;
;; Packages
;;
(def-package! dired-k
2017-02-19 18:53:38 -05:00
:after dired
:config
(setq dired-k-style 'git)
(add-hook 'dired-initial-position-hook 'dired-k)
(add-hook 'dired-after-readin-hook #'dired-k-no-revert))
;; Striped dired buffers
(def-package! stripe-buffer
2017-02-19 18:53:38 -05:00
:commands stripe-buffer-mode
:init (add-hook 'dired-mode-hook 'stripe-buffer-mode))