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.
|
Configure dired to only use one buffer.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setf dired-kill-when-opening-new-dired-buffer t)
|
(setf dired-kill-when-opening-new-dired-buffer t)
|
||||||
(eval-after-load "dired"
|
(setq dired-listing-switches "-laGh1v --group-directories-first")
|
||||||
'(progn
|
|
||||||
(defadvice dired-advertised-find-file (around dired-subst-directory activate)
|
(setq dired-omit-files
|
||||||
"Replace current buffer if file is a directory."
|
(rx (or (seq bol (? ".") "#") ;; emacs autosave files
|
||||||
(interactive)
|
(seq bol "." (not (any "."))) ;; dot-files
|
||||||
(let* ((orig (current-buffer))
|
(seq "~" eol) ;; backup-files
|
||||||
;; (filename (dired-get-filename))
|
(seq bol "CVS" eol) ;; CVS dirs
|
||||||
(filename (dired-get-filename t t))
|
)))
|
||||||
(bye-p (file-directory-p filename)))
|
|
||||||
ad-do-it
|
(defun my-dired-init ()
|
||||||
(when (and bye-p (not (string-match "[/\\\\]\\.$" filename)))
|
"to be run as hook for `dired-mode'."
|
||||||
(kill-buffer orig))))))
|
(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"
|
(eval-after-load "dired"
|
||||||
;; don't remove `other-window', the caller expects it to be there
|
'(progn
|
||||||
'(defun dired-up-directory (&optional other-window)
|
(define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file) ; was dired-advertised-find-file
|
||||||
"Run Dired on parent directory of current directory."
|
(define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file ".."))) ; was dired-up-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))))))
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Other Settings
|
** Other Settings
|
||||||
|
|||||||
Reference in New Issue
Block a user