comparison lisp/isearch.el @ 61643:7508a279dc7a

(isearch-edit-string): Make the search-ring available for minibuffer history commands. (minibuffer-local-isearch-map): Remove bindings for M-p and M-n, the default history commands now work just as well. (isearch-ring-retreat-edit, isearch-ring-advance-edit): Remove.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 18 Apr 2005 22:32:37 +0000
parents d37e83a20683
children d8f3865ed9a2 e1fbb019c538
comparison
equal deleted inserted replaced
61642:38e5ee03d4a9 61643:7508a279dc7a
403 403
404 (defvar minibuffer-local-isearch-map 404 (defvar minibuffer-local-isearch-map
405 (let ((map (make-sparse-keymap))) 405 (let ((map (make-sparse-keymap)))
406 (set-keymap-parent map minibuffer-local-map) 406 (set-keymap-parent map minibuffer-local-map)
407 (define-key map "\r" 'isearch-nonincremental-exit-minibuffer) 407 (define-key map "\r" 'isearch-nonincremental-exit-minibuffer)
408 (define-key map "\M-n" 'isearch-ring-advance-edit)
409 (define-key map [next] 'isearch-ring-advance-edit)
410 (define-key map [down] 'isearch-ring-advance-edit)
411 (define-key map "\M-p" 'isearch-ring-retreat-edit)
412 (define-key map [prior] 'isearch-ring-retreat-edit)
413 (define-key map [up] 'isearch-ring-retreat-edit)
414 (define-key map "\M-\t" 'isearch-complete-edit) 408 (define-key map "\M-\t" 'isearch-complete-edit)
415 (define-key map "\C-s" 'isearch-forward-exit-minibuffer) 409 (define-key map "\C-s" 'isearch-forward-exit-minibuffer)
416 (define-key map "\C-r" 'isearch-reverse-exit-minibuffer) 410 (define-key map "\C-r" 'isearch-reverse-exit-minibuffer)
417 (define-key map "\C-f" 'isearch-yank-char-in-minibuffer) 411 (define-key map "\C-f" 'isearch-yank-char-in-minibuffer)
418 (define-key map [right] 'isearch-yank-char-in-minibuffer) 412 (define-key map [right] 'isearch-yank-char-in-minibuffer)
935 \\<minibuffer-local-isearch-map> 929 \\<minibuffer-local-isearch-map>
936 \\[exit-minibuffer] to resume incremental searching with the edited string. 930 \\[exit-minibuffer] to resume incremental searching with the edited string.
937 \\[isearch-nonincremental-exit-minibuffer] to do one nonincremental search. 931 \\[isearch-nonincremental-exit-minibuffer] to do one nonincremental search.
938 \\[isearch-forward-exit-minibuffer] to resume isearching forward. 932 \\[isearch-forward-exit-minibuffer] to resume isearching forward.
939 \\[isearch-reverse-exit-minibuffer] to resume isearching backward. 933 \\[isearch-reverse-exit-minibuffer] to resume isearching backward.
940 \\[isearch-ring-advance-edit] to replace the search string with the next item in the search ring.
941 \\[isearch-ring-retreat-edit] to replace the search string with the previous item in the search ring.
942 \\[isearch-complete-edit] to complete the search string using the search ring. 934 \\[isearch-complete-edit] to complete the search string using the search ring.
943 \\<isearch-mode-map> 935 \\<isearch-mode-map>
944 If first char entered is \\[isearch-yank-word-or-char], then do word search instead." 936 If first char entered is \\[isearch-yank-word-or-char], then do word search instead."
945 937
946 ;; This code is very hairy for several reasons, explained in the code. 938 ;; This code is very hairy for several reasons, explained in the code.
1022 isearch-new-word t) 1014 isearch-new-word t)
1023 (cancel-kbd-macro-events) 1015 (cancel-kbd-macro-events)
1024 (isearch-unread e)) 1016 (isearch-unread e))
1025 (setq cursor-in-echo-area nil) 1017 (setq cursor-in-echo-area nil)
1026 (setq isearch-new-string 1018 (setq isearch-new-string
1027 (let (junk-ring) 1019 (read-from-minibuffer
1028 (read-from-minibuffer 1020 (isearch-message-prefix nil nil isearch-nonincremental)
1029 (isearch-message-prefix nil nil isearch-nonincremental) 1021 isearch-string
1030 isearch-string 1022 minibuffer-local-isearch-map nil
1031 minibuffer-local-isearch-map nil 1023 (if isearch-regexp 'regexp-search-ring 'search-ring)
1032 'junk-ring nil t)) 1024 nil t)
1033 isearch-new-message 1025 isearch-new-message
1034 (mapconcat 'isearch-text-char-description 1026 (mapconcat 'isearch-text-char-description
1035 isearch-new-string ""))) 1027 isearch-new-string "")))
1036 ;; Always resume isearching by restarting it. 1028 ;; Always resume isearching by restarting it.
1037 (isearch-mode isearch-forward 1029 (isearch-mode isearch-forward
1858 (defun isearch-ring-retreat () 1850 (defun isearch-ring-retreat ()
1859 "Retreat to the previous search string in the ring." 1851 "Retreat to the previous search string in the ring."
1860 (interactive) 1852 (interactive)
1861 (isearch-ring-adjust nil)) 1853 (isearch-ring-adjust nil))
1862 1854
1863 (defun isearch-ring-advance-edit (n)
1864 "Insert the next element of the search history into the minibuffer.
1865 With prefix arg N, insert the Nth element."
1866 (interactive "p")
1867 (let* ((yank-pointer-name (if isearch-regexp
1868 'regexp-search-ring-yank-pointer
1869 'search-ring-yank-pointer))
1870 (yank-pointer (eval yank-pointer-name))
1871 (ring (if isearch-regexp regexp-search-ring search-ring))
1872 (length (length ring)))
1873 (if (zerop length)
1874 ()
1875 (set yank-pointer-name
1876 (setq yank-pointer
1877 (mod (- (or yank-pointer 0) n)
1878 length)))
1879
1880 (delete-field)
1881 (insert (nth yank-pointer ring))
1882 (goto-char (point-max)))))
1883
1884 (defun isearch-ring-retreat-edit (n)
1885 "Insert the previous element of the search history into the minibuffer.
1886 With prefix arg N, insert the Nth element."
1887 (interactive "p")
1888 (isearch-ring-advance-edit (- n)))
1889
1890 ;;(defun isearch-ring-adjust-edit (advance)
1891 ;; "Use the next or previous search string in the ring while in minibuffer."
1892 ;; (isearch-ring-adjust1 advance)
1893 ;; (erase-buffer)
1894 ;; (insert isearch-string))
1895
1896 ;;(defun isearch-ring-advance-edit ()
1897 ;; (interactive)
1898 ;; (isearch-ring-adjust-edit 'advance))
1899
1900 ;;(defun isearch-ring-retreat-edit ()
1901 ;; "Retreat to the previous search string in the ring while in the minibuffer."
1902 ;; (interactive)
1903 ;; (isearch-ring-adjust-edit nil))
1904
1905
1906 (defun isearch-complete1 () 1855 (defun isearch-complete1 ()
1907 ;; Helper for isearch-complete and isearch-complete-edit 1856 ;; Helper for isearch-complete and isearch-complete-edit
1908 ;; Return t if completion OK, nil if no completion exists. 1857 ;; Return t if completion OK, nil if no completion exists.
1909 (let* ((ring (if isearch-regexp regexp-search-ring search-ring)) 1858 (let* ((ring (if isearch-regexp regexp-search-ring search-ring))
1910 (completion-ignore-case case-fold-search) 1859 (completion-ignore-case case-fold-search)