;;; init-dired.el --- -*- lexical-binding: t -*- ;; ;; Filename: init-dired.el ;; Description: Initialize Dired and Related Configurations ;; Author: Mingde (Matthew) Zeng ;; Copyright (C) 2019 Mingde (Matthew) Zeng ;; Created: Thu Mar 14 11:37:00 2019 (-0400) ;; Version: 2.0.0 ;; Last-Updated: Wed Dec 25 02:33:09 2019 (-0500) ;; By: Mingde (Matthew) Zeng ;; URL: https://github.com/MatthewZMD/.emacs.d ;; Keywords: M-EMACS .emacs.d dired auto-save ;; Compatibility: emacs-version >= 26.1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Commentary: ;; ;; This initializes dired, super-save, disk-usage ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or (at ;; your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Code: ;; DiredPackage (use-package dired :ensure nil :bind (("C-x C-j" . dired-jump) ("C-x j" . dired-jump-other-window)) :custom ;; Always delete and copy recursively (dired-recursive-deletes 'always) (dired-recursive-copies 'always) ;; Auto refresh Dired, but be quiet about it (global-auto-revert-non-file-buffers t) (auto-revert-verbose nil) ;; Quickly copy/move file in Dired (dired-dwim-target t) ;; Move files to trash when deleting (delete-by-moving-to-trash t) ;; Load the newest version of a file (load-prefer-newer t) ;; Detect external file changes and auto refresh file (auto-revert-use-notify nil) (auto-revert-interval 3) ; Auto revert every 3 sec :config ;; Enable global auto-revert (global-auto-revert-mode t) ;; Reuse same dired buffer, to prevent numerous buffers while navigating in dired (put 'dired-find-alternate-file 'disabled nil) :hook (dired-mode . (lambda () (local-set-key (kbd "") #'dired-find-alternate-file) (local-set-key (kbd "RET") #'dired-find-alternate-file) (local-set-key (kbd "^") (lambda () (interactive) (find-alternate-file "..")))))) ;; -DiredPackage (use-package dired-subtree :config (bind-keys :map dired-mode-map ("i" . dired-subtree-insert) (";" . dired-subtree-remove) ("" . dired-subtree-toggle))) ;; DiskUsage (use-package disk-usage :commands (disk-usage)) ;; -DiskUsage ;; SuperSave (use-package super-save :diminish :custom (super-save-auto-save-when-idle t) (auto-save-default nil) (make-backup-files nil) :config (super-save-mode 1)) ;; -SuperSave ;; SaveAllBuffers (defun save-all-buffers () "Instead of `save-buffer', save all opened buffers by calling `save-some-buffers' with ARG t." (interactive) (save-some-buffers t)) (global-set-key (kbd "C-x C-s") nil) (global-set-key (kbd "C-x C-s") #'save-all-buffers) ;; -SaveAllBuffers (provide 'init-dired) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-dired.el ends here