Mercurial > emacs
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) |