* lisp/dired.el (dired-mode-map): Use defvar-keymap.
This commit is contained in:
parent
cb10eed97c
commit
21ef1740f0
1 changed files with 145 additions and 147 deletions
292
lisp/dired.el
292
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."
|
||||
|
|
Loading…
Add table
Reference in a new issue