diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index c390017e190..a840a027553 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -3537,13 +3537,13 @@ dired-isearch-filenames-setup (when (or (eq dired-isearch-filenames t) (and (eq dired-isearch-filenames 'dwim) (get-text-property (point) 'dired-filename))) - (define-key isearch-mode-map "\M-sff" 'dired-isearch-filenames-mode) + (define-key isearch-mode-search-map "ff" 'dired-isearch-filenames-mode) (dired-isearch-filenames-mode 1) (add-hook 'isearch-mode-end-hook #'dired-isearch-filenames-end nil t))) (defun dired-isearch-filenames-end () "Clean up the Dired file name search after terminating isearch." - (define-key isearch-mode-map "\M-sff" nil) + (define-key isearch-mode-search-map "ff" nil) (dired-isearch-filenames-mode -1) (remove-hook 'isearch-mode-end-hook #'dired-isearch-filenames-end t) (unless isearch-suspended diff --git a/lisp/isearch.el b/lisp/isearch.el index 8efafd0a2d0..e2273ab7fb9 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -560,6 +560,21 @@ isearch-menu-bar-commands '(isearch-tmm-menubar tmm-menubar menu-bar-open mouse-minor-mode-menu) "List of commands that can open a menu during Isearch.") +(defvar-keymap isearch-mode-search-map + :doc "Keymap for the M-s prefix keys used during Isearch." + ;; More toggles defined by `isearch-define-mode-toggle'. + "C-e" #'isearch-yank-line + "M-<" #'isearch-beginning-of-buffer + "M->" #'isearch-end-of-buffer + "e" #'isearch-edit-string + "o" #'isearch-occur + "h r" #'isearch-highlight-regexp + "h l" #'isearch-highlight-lines-matching-regexp) + +(put 'isearch-toggle-case-fold :advertised-binding "\M-sc") +(put 'isearch-toggle-regexp :advertised-binding "\M-sr") +(put 'isearch-edit-string :advertised-binding "\M-se") + ;; Note: Before adding more key bindings to this map, please keep in ;; mind that any unbound key exits Isearch and runs the command bound ;; to it in the local or global map. So in effect every key unbound @@ -618,10 +633,6 @@ isearch-mode-map (define-key map "\M-\C-y" 'isearch-yank-char) (define-key map "\C-y" 'isearch-yank-kill) (define-key map "\M-\C-z" 'isearch-yank-until-char) - (define-key map "\M-s\C-e" 'isearch-yank-line) - - (define-key map "\M-s\M-<" 'isearch-beginning-of-buffer) - (define-key map "\M-s\M->" 'isearch-end-of-buffer) (define-key map (char-to-string help-char) isearch-help-map) (define-key map [help] isearch-help-map) @@ -659,18 +670,10 @@ isearch-mode-map (define-key map "\M-r" 'isearch-toggle-regexp) (define-key map "\M-e" 'isearch-edit-string) - (put 'isearch-toggle-case-fold :advertised-binding "\M-sc") - (put 'isearch-toggle-regexp :advertised-binding "\M-sr") - (put 'isearch-edit-string :advertised-binding "\M-se") - - (define-key map "\M-se" 'isearch-edit-string) - ;; More toggles defined by `isearch-define-mode-toggle'. - (define-key map [?\M-%] 'isearch-query-replace) (define-key map [?\C-\M-%] 'isearch-query-replace-regexp) - (define-key map "\M-so" 'isearch-occur) - (define-key map "\M-shr" 'isearch-highlight-regexp) - (define-key map "\M-shl" 'isearch-highlight-lines-matching-regexp) + + (define-key map "\M-s" isearch-mode-search-map) ;; The key translations defined in the C-x 8 prefix should add ;; characters to the search string. See iso-transl.el.