53 lines
1.6 KiB
EmacsLisp
53 lines
1.6 KiB
EmacsLisp
;;; module-dired.el --- dired stuff
|
|
;;;
|
|
;;; Commentary:
|
|
;;;
|
|
;;; Configure settings and extensions for Dired.
|
|
;;;
|
|
;;; Code:
|
|
|
|
(require 'module-pkg)
|
|
(require 'dired)
|
|
|
|
(pkg/require 'dired-sidebar)
|
|
|
|
(defun my/dired-duplicate-file (file)
|
|
"Duplicate the current FILE in Dired."
|
|
(interactive "p")
|
|
(let ((filename (dired-get-filename))
|
|
(target '()))
|
|
(setq target (concat (file-name-sans-extension filename)
|
|
"-old"
|
|
(if (> file 1) (number-to-string file))
|
|
(file-name-extension filename t)))
|
|
(if (file-directory-p filename)
|
|
(copy-file filename target))))
|
|
|
|
(defun my/dired-mouse-find-file (event)
|
|
"In Dired, visit the file or directory name you click on."
|
|
(interactive "e")
|
|
(let (window pos file)
|
|
(save-excursion
|
|
(setq window (posn-window (event-end event))
|
|
pos (posn-point (event-end event)))
|
|
(if (not (windowp window))
|
|
(error "No file chosen"))
|
|
(set-buffer (window-buffer window))
|
|
(goto-char pos)
|
|
(setq file (dired-get-file-for-visit)))
|
|
(if (file-directory-p file)
|
|
(or (and (cdr dired-subdir-alist)
|
|
(dired-goto-subdir file))
|
|
(dired file))
|
|
(find-file file))))
|
|
|
|
(define-key dired-mode-map [mouse-2] 'my/dired-mouse-find-file)
|
|
(global-set-key (kbd "<f12>") 'dired-sidebar-toggle-sidebar)
|
|
(define-key dired-mode-map (kbd "C-c d") 'my/dired-duplicate-file)
|
|
(define-key dired-mode-map (kbd "C-c t") 'dired-create-empty-file)
|
|
(define-key dired-mode-map (kbd "C-c C-k") 'dired-kill-subdir)
|
|
|
|
(provide 'module-dired)
|
|
|
|
;;; module-dired.el ends here.
|