From d863e32570e3ea03f5a4f6b12830b8da1e2c3dfd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 2 Feb 2016 05:44:07 -0500 Subject: [PATCH] Add dired config --- core/core-project.el | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/core/core-project.el b/core/core-project.el index 1e68f4677..5ed7fe352 100644 --- a/core/core-project.el +++ b/core/core-project.el @@ -1,5 +1,39 @@ ;;; core-project.el --- all your (basic) project navigational needs +;;; Dired +;; Always copy/delete recursively +(setq dired-recursive-copies (quote always)) +(setq dired-recursive-deletes (quote top)) + +;; Auto refresh dired, but be quiet about it +(setq global-auto-revert-non-file-buffers t) +(setq auto-revert-verbose nil) + +(setq dired-omit-mode t) + +;; List directories first +(defun narf|dired-sort () + "Dired sort hook to list directories first." + (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 'narf|dired-sort) + +;; Automatically create missing directories when creating new files +(defun narf|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)))) +(add-to-list 'find-file-not-found-functions #'narf|create-non-existent-directory) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (use-package ido :defines (flx-ido-mode ido-ubiquitous-debug-mode ido-context-switch-command ido-temp-list) :functions (ido-to-end)