Further config for dired
This commit is contained in:
69
README.org
69
README.org
@@ -80,35 +80,50 @@ Emacs sure loves to clutter directories with backup files.
|
||||
Configure dired to only use one buffer.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setf dired-kill-when-opening-new-dired-buffer t)
|
||||
(eval-after-load "dired"
|
||||
'(progn
|
||||
(defadvice dired-advertised-find-file (around dired-subst-directory activate)
|
||||
"Replace current buffer if file is a directory."
|
||||
(interactive)
|
||||
(let* ((orig (current-buffer))
|
||||
;; (filename (dired-get-filename))
|
||||
(filename (dired-get-filename t t))
|
||||
(bye-p (file-directory-p filename)))
|
||||
ad-do-it
|
||||
(when (and bye-p (not (string-match "[/\\\\]\\.$" filename)))
|
||||
(kill-buffer orig))))))
|
||||
(setq dired-listing-switches "-laGh1v --group-directories-first")
|
||||
|
||||
(setq dired-omit-files
|
||||
(rx (or (seq bol (? ".") "#") ;; emacs autosave files
|
||||
(seq bol "." (not (any "."))) ;; dot-files
|
||||
(seq "~" eol) ;; backup-files
|
||||
(seq bol "CVS" eol) ;; CVS dirs
|
||||
)))
|
||||
|
||||
(defun my-dired-init ()
|
||||
"to be run as hook for `dired-mode'."
|
||||
(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)
|
||||
|
||||
(dired-hide-details-mode 1)
|
||||
(dired-omit-mode 1))
|
||||
|
||||
(add-hook 'dired-mode-hook 'my-dired-init)
|
||||
|
||||
(eval-after-load "dired"
|
||||
;; don't remove `other-window', the caller expects it to be there
|
||||
'(defun dired-up-directory (&optional other-window)
|
||||
"Run Dired on parent directory of current directory."
|
||||
(interactive "P")
|
||||
(let* ((dir (dired-current-directory))
|
||||
(orig (current-buffer))
|
||||
(up (file-name-directory (directory-file-name dir))))
|
||||
(or (dired-goto-file (directory-file-name dir))
|
||||
;; Only try dired-goto-subdir if buffer has more than one dir.
|
||||
(and (cdr dired-subdir-alist)
|
||||
(dired-goto-subdir up))
|
||||
(progn
|
||||
(kill-buffer orig)
|
||||
(dired up)
|
||||
(dired-goto-file dir))))))
|
||||
'(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
|
||||
))
|
||||
#+END_SRC
|
||||
|
||||
** Other Settings
|
||||
|
||||
Reference in New Issue
Block a user