emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 21ef174 2/2: * lisp/dired.el (dired-mode-map): Use defvar-keymap.


From: Stefan Kangas
Subject: master 21ef174 2/2: * lisp/dired.el (dired-mode-map): Use defvar-keymap.
Date: Sat, 18 Dec 2021 09:54:20 -0500 (EST)

branch: master
commit 21ef1740f0fe9424f2a079440d070f725b2ca558
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    * lisp/dired.el (dired-mode-map): Use defvar-keymap.
---
 lisp/dired.el | 292 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 145 insertions(+), 147 deletions(-)

diff --git a/lisp/dired.el b/lisp/dired.el
index b964fd9..a884121 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1920,154 +1920,152 @@ Do so according to the former subdir alist 
OLD-SUBDIR-ALIST."
 
 ;;; Dired mode key bindings and menus
 
-(defvar dired-mode-map
+(defvar-keymap dired-mode-map
+  :doc "Local keymap for Dired mode buffers."
+  :full t
+  :parent special-mode-map
   ;; This looks ugly when substitute-command-keys uses C-d instead d:
-  ;;  (define-key dired-mode-map "\C-d" 'dired-flag-file-deletion)
-  (let ((map (make-keymap)))
-    (set-keymap-parent map special-mode-map)
-    (define-key map [mouse-2] 'dired-mouse-find-file-other-window)
-    (define-key map [follow-link] 'mouse-face)
-    ;; Commands to mark or flag certain categories of files
-    (define-key map "#" 'dired-flag-auto-save-files)
-    (define-key map "." 'dired-clean-directory)
-    (define-key map "~" 'dired-flag-backup-files)
-    ;; Upper case keys (except !) for operating on the marked files
-    (define-key map "A" 'dired-do-find-regexp)
-    (define-key map "C" 'dired-do-copy)
-    (define-key map "B" 'dired-do-byte-compile)
-    (define-key map "D" 'dired-do-delete)
-    (define-key map "G" 'dired-do-chgrp)
-    (define-key map "H" 'dired-do-hardlink)
-    (define-key map "L" 'dired-do-load)
-    (define-key map "M" 'dired-do-chmod)
-    (define-key map "O" 'dired-do-chown)
-    (define-key map "P" 'dired-do-print)
-    (define-key map "Q" 'dired-do-find-regexp-and-replace)
-    (define-key map "R" 'dired-do-rename)
-    (define-key map "S" 'dired-do-symlink)
-    (define-key map "T" 'dired-do-touch)
-    (define-key map "X" 'dired-do-shell-command)
-    (define-key map "Z" 'dired-do-compress)
-    (define-key map "c" 'dired-do-compress-to)
-    (define-key map "!" 'dired-do-shell-command)
-    (define-key map "&" 'dired-do-async-shell-command)
-    ;; Comparison commands
-    (define-key map "=" 'dired-diff)
-    ;; Tree Dired commands
-    (define-key map "\M-\C-?" 'dired-unmark-all-files)
-    (define-key map "\M-\C-d" 'dired-tree-down)
-    (define-key map "\M-\C-u" 'dired-tree-up)
-    (define-key map "\M-\C-n" 'dired-next-subdir)
-    (define-key map "\M-\C-p" 'dired-prev-subdir)
-    ;; move to marked files
-    (define-key map "\M-{" 'dired-prev-marked-file)
-    (define-key map "\M-}" 'dired-next-marked-file)
-    ;; Make all regexp commands share a `%' prefix:
-    ;; We used to get to the submap via a symbol dired-regexp-prefix,
-    ;; but that seems to serve little purpose, and copy-keymap
-    ;; does a better job without it.
-    (define-key map "%" nil)
-    (define-key map "%u" 'dired-upcase)
-    (define-key map "%l" 'dired-downcase)
-    (define-key map "%d" 'dired-flag-files-regexp)
-    (define-key map "%g" 'dired-mark-files-containing-regexp)
-    (define-key map "%m" 'dired-mark-files-regexp)
-    (define-key map "%r" 'dired-do-rename-regexp)
-    (define-key map "%C" 'dired-do-copy-regexp)
-    (define-key map "%H" 'dired-do-hardlink-regexp)
-    (define-key map "%R" 'dired-do-rename-regexp)
-    (define-key map "%S" 'dired-do-symlink-regexp)
-    (define-key map "%&" 'dired-flag-garbage-files)
-    ;; Commands for marking and unmarking.
-    (define-key map "*" nil)
-    (define-key map "**" 'dired-mark-executables)
-    (define-key map "*/" 'dired-mark-directories)
-    (define-key map "*@" 'dired-mark-symlinks)
-    (define-key map "*%" 'dired-mark-files-regexp)
-    (define-key map "*N" 'dired-number-of-marked-files)
-    (define-key map "*c" 'dired-change-marks)
-    (define-key map "*s" 'dired-mark-subdir-files)
-    (define-key map "*m" 'dired-mark)
-    (define-key map "*u" 'dired-unmark)
-    (define-key map "*?" 'dired-unmark-all-files)
-    (define-key map "*!" 'dired-unmark-all-marks)
-    (define-key map "U" 'dired-unmark-all-marks)
-    (define-key map "*\177" 'dired-unmark-backward)
-    (define-key map "*\C-n" 'dired-next-marked-file)
-    (define-key map "*\C-p" 'dired-prev-marked-file)
-    (define-key map "*t" 'dired-toggle-marks)
-    ;; Lower keys for commands not operating on all the marked files
-    (define-key map "a" 'dired-find-alternate-file)
-    (define-key map "d" 'dired-flag-file-deletion)
-    (define-key map "e" 'dired-find-file)
-    (define-key map "f" 'dired-find-file)
-    (define-key map "\C-m" 'dired-find-file)
-    (put 'dired-find-file :advertised-binding "\C-m")
-    (define-key map "g" 'revert-buffer)
-    (define-key map "i" 'dired-maybe-insert-subdir)
-    (define-key map "j" 'dired-goto-file)
-    (define-key map "k" 'dired-do-kill-lines)
-    (define-key map "l" 'dired-do-redisplay)
-    (define-key map "m" 'dired-mark)
-    (define-key map "n" 'dired-next-line)
-    (define-key map "o" 'dired-find-file-other-window)
-    (define-key map "\C-o" 'dired-display-file)
-    (define-key map "p" 'dired-previous-line)
-    (define-key map "s" 'dired-sort-toggle-or-edit)
-    (define-key map "t" 'dired-toggle-marks)
-    (define-key map "u" 'dired-unmark)
-    (define-key map "v" 'dired-view-file)
-    (define-key map "w" 'dired-copy-filename-as-kill)
-    (define-key map "W" 'browse-url-of-dired-file)
-    (define-key map "x" 'dired-do-flagged-delete)
-    (define-key map "y" 'dired-show-file-type)
-    (define-key map "+" 'dired-create-directory)
-    ;; moving
-    (define-key map "<" 'dired-prev-dirline)
-    (define-key map ">" 'dired-next-dirline)
-    (define-key map "^" 'dired-up-directory)
-    (define-key map " " 'dired-next-line)
-    (define-key map [?\S-\ ] 'dired-previous-line)
-    (define-key map [remap next-line] 'dired-next-line)
-    (define-key map [remap previous-line] 'dired-previous-line)
-    ;; hiding
-    (define-key map "$" 'dired-hide-subdir)
-    (define-key map "\M-$" 'dired-hide-all)
-    (define-key map "(" 'dired-hide-details-mode)
-    ;; isearch
-    (define-key map (kbd "M-s a C-s")   'dired-do-isearch)
-    (define-key map (kbd "M-s a M-C-s") 'dired-do-isearch-regexp)
-    (define-key map (kbd "M-s f C-s")   'dired-isearch-filenames)
-    (define-key map (kbd "M-s f M-C-s") 'dired-isearch-filenames-regexp)
-    ;; misc
-    (define-key map [remap read-only-mode] 'dired-toggle-read-only)
-    ;; `toggle-read-only' is an obsolete alias for `read-only-mode'
-    (define-key map [remap toggle-read-only] 'dired-toggle-read-only)
-    (define-key map "?" 'dired-summary)
-    (define-key map "\177" 'dired-unmark-backward)
-    (define-key map [remap undo] 'dired-undo)
-    (define-key map [remap advertised-undo] 'dired-undo)
-    (define-key map [remap vc-next-action] 'dired-vc-next-action)
-    ;; thumbnail manipulation (image-dired)
-    (define-key map "\C-td" 'image-dired-display-thumbs)
-    (define-key map "\C-tt" 'image-dired-tag-files)
-    (define-key map "\C-tr" 'image-dired-delete-tag)
-    (define-key map "\C-tj" 'image-dired-jump-thumbnail-buffer)
-    (define-key map "\C-ti" 'image-dired-dired-display-image)
-    (define-key map "\C-tx" 'image-dired-dired-display-external)
-    (define-key map "\C-ta" 'image-dired-display-thumbs-append)
-    (define-key map "\C-t." 'image-dired-display-thumb)
-    (define-key map "\C-tc" 'image-dired-dired-comment-files)
-    (define-key map "\C-tf" 'image-dired-mark-tagged-files)
-    (define-key map "\C-t\C-t" 'image-dired-dired-toggle-marked-thumbs)
-    (define-key map "\C-te" 'image-dired-dired-edit-comment-and-tags)
-    ;; encryption and decryption (epa-dired)
-    (define-key map ":d" 'epa-dired-do-decrypt)
-    (define-key map ":v" 'epa-dired-do-verify)
-    (define-key map ":s" 'epa-dired-do-sign)
-    (define-key map ":e" 'epa-dired-do-encrypt)
-    map)
-  "Local keymap for Dired mode buffers.")
+  ;;  "C-d" #'dired-flag-file-deletion
+  "<mouse-2>"     #'dired-mouse-find-file-other-window
+  "<follow-link>" 'mouse-face
+  ;; Commands to mark or flag certain categories of files
+  "#"       #'dired-flag-auto-save-files
+  "."       #'dired-clean-directory
+  "~"       #'dired-flag-backup-files
+  ;; Upper case keys (except !) for operating on the marked files
+  "A"       #'dired-do-find-regexp
+  "C"       #'dired-do-copy
+  "B"       #'dired-do-byte-compile
+  "D"       #'dired-do-delete
+  "G"       #'dired-do-chgrp
+  "H"       #'dired-do-hardlink
+  "L"       #'dired-do-load
+  "M"       #'dired-do-chmod
+  "O"       #'dired-do-chown
+  "P"       #'dired-do-print
+  "Q"       #'dired-do-find-regexp-and-replace
+  "R"       #'dired-do-rename
+  "S"       #'dired-do-symlink
+  "T"       #'dired-do-touch
+  "X"       #'dired-do-shell-command
+  "Z"       #'dired-do-compress
+  "c"       #'dired-do-compress-to
+  "!"       #'dired-do-shell-command
+  "&"       #'dired-do-async-shell-command
+  ;; Comparison commands
+  "="       #'dired-diff
+  ;; Tree Dired commands
+  "M-DEL"   #'dired-unmark-all-files
+  "C-M-d"   #'dired-tree-down
+  "C-M-u"   #'dired-tree-up
+  "C-M-n"   #'dired-next-subdir
+  "C-M-p"   #'dired-prev-subdir
+  ;; move to marked files
+  "M-{"     #'dired-prev-marked-file
+  "M-}"     #'dired-next-marked-file
+  ;; Make all regexp commands share a `%' prefix:
+  ;; We used to get to the submap via a symbol dired-regexp-prefix,
+  ;; but that seems to serve little purpose, and copy-keymap
+  ;; does a better job without it.
+  "% u"     #'dired-upcase
+  "% l"     #'dired-downcase
+  "% d"     #'dired-flag-files-regexp
+  "% g"     #'dired-mark-files-containing-regexp
+  "% m"     #'dired-mark-files-regexp
+  "% r"     #'dired-do-rename-regexp
+  "% C"     #'dired-do-copy-regexp
+  "% H"     #'dired-do-hardlink-regexp
+  "% R"     #'dired-do-rename-regexp
+  "% S"     #'dired-do-symlink-regexp
+  "% &"     #'dired-flag-garbage-files
+  ;; Commands for marking and unmarking.
+  "* *"     #'dired-mark-executables
+  "* /"     #'dired-mark-directories
+  "* @"     #'dired-mark-symlinks
+  "* %"     #'dired-mark-files-regexp
+  "* N"     #'dired-number-of-marked-files
+  "* c"     #'dired-change-marks
+  "* s"     #'dired-mark-subdir-files
+  "* m"     #'dired-mark
+  "* u"     #'dired-unmark
+  "* ?"     #'dired-unmark-all-files
+  "* !"     #'dired-unmark-all-marks
+  "U"       #'dired-unmark-all-marks
+  "* DEL"   #'dired-unmark-backward
+  "* C-n"   #'dired-next-marked-file
+  "* C-p"   #'dired-prev-marked-file
+  "* t"     #'dired-toggle-marks
+  ;; Lower keys for commands not operating on all the marked files
+  "a"       #'dired-find-alternate-file
+  "d"       #'dired-flag-file-deletion
+  "e"       #'dired-find-file
+  "f"       #'dired-find-file
+  "C-m"     #'dired-find-file
+  "g"       #'revert-buffer
+  "i"       #'dired-maybe-insert-subdir
+  "j"       #'dired-goto-file
+  "k"       #'dired-do-kill-lines
+  "l"       #'dired-do-redisplay
+  "m"       #'dired-mark
+  "n"       #'dired-next-line
+  "o"       #'dired-find-file-other-window
+  "C-o"     #'dired-display-file
+  "p"       #'dired-previous-line
+  "s"       #'dired-sort-toggle-or-edit
+  "t"       #'dired-toggle-marks
+  "u"       #'dired-unmark
+  "v"       #'dired-view-file
+  "w"       #'dired-copy-filename-as-kill
+  "W"       #'browse-url-of-dired-file
+  "x"       #'dired-do-flagged-delete
+  "y"       #'dired-show-file-type
+  "+"       #'dired-create-directory
+  ;; moving
+  "<"       #'dired-prev-dirline
+  ">"       #'dired-next-dirline
+  "^"       #'dired-up-directory
+  "SPC"     #'dired-next-line
+  "S-SPC"   #'dired-previous-line
+  "<remap> <next-line>"        #'dired-next-line
+  "<remap> <previous-line>"    #'dired-previous-line
+  ;; hiding
+  "$"       #'dired-hide-subdir
+  "M-$"     #'dired-hide-all
+  "("       #'dired-hide-details-mode
+  ;; isearch
+  "M-s a C-s"   #'dired-do-isearch
+  "M-s a C-M-s" #'dired-do-isearch-regexp
+  "M-s f C-s"   #'dired-isearch-filenames
+  "M-s f C-M-s" #'dired-isearch-filenames-regexp
+  ;; misc
+  "<remap> <read-only-mode>"   #'dired-toggle-read-only
+  ;; `toggle-read-only' is an obsolete alias for `read-only-mode'
+  "<remap> <toggle-read-only>" #'dired-toggle-read-only
+  "?"       #'dired-summary
+  "DEL"     #'dired-unmark-backward
+  "<remap> <undo>"             #'dired-undo
+  "<remap> <advertised-undo>"  #'dired-undo
+  "<remap> <vc-next-action>"   #'dired-vc-next-action
+  ;; thumbnail manipulation (image-dired)
+  "C-t d"   #'image-dired-display-thumbs
+  "C-t t"   #'image-dired-tag-files
+  "C-t r"   #'image-dired-delete-tag
+  "C-t j"   #'image-dired-jump-thumbnail-buffer
+  "C-t i"   #'image-dired-dired-display-image
+  "C-t x"   #'image-dired-dired-display-external
+  "C-t a"   #'image-dired-display-thumbs-append
+  "C-t ."   #'image-dired-display-thumb
+  "C-t c"   #'image-dired-dired-comment-files
+  "C-t f"   #'image-dired-mark-tagged-files
+  "C-t C-t" #'image-dired-dired-toggle-marked-thumbs
+  "C-t e"   #'image-dired-dired-edit-comment-and-tags
+  ;; encryption and decryption (epa-dired)
+  ": d"     #'epa-dired-do-decrypt
+  ": v"     #'epa-dired-do-verify
+  ": s"     #'epa-dired-do-sign
+  ": e"     #'epa-dired-do-encrypt)
+
+(put 'dired-find-file :advertised-binding (kbd "RET"))
 
 (easy-menu-define dired-mode-subdir-menu dired-mode-map
   "Subdir menu for Dired mode."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]