]> git.eshelyaron.com Git - emacs.git/commitdiff
New command 'search-from-isearch'
authorEshel Yaron <me@eshelyaron.com>
Sat, 13 Jul 2024 19:41:23 +0000 (21:41 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sat, 13 Jul 2024 19:41:23 +0000 (21:41 +0200)
lisp/isearch.el
lisp/search.el

index 8d209147ee8e427661d4fbf3f35aa3a2a5ae8ae2..8f65d28cdb28c94d862efecfa42e4cd51ce1728a 100644 (file)
@@ -646,6 +646,7 @@ This is like `describe-bindings', but displays only Isearch keys."
     (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-s\M-s" 'search-from-isearch)
     (define-key map "\M-shr" 'isearch-highlight-regexp)
     (define-key map "\M-shl" 'isearch-highlight-lines-matching-regexp)
 
index 829da463282ea62488d022400281f743c8fca92b..837de96d22aa8c13bbcbbb7619a2230faedf06e3 100644 (file)
 
 ;; - Support multi-buffer `search'.
 ;; - Add regexp completion style and use it for `search' completion.
-;; - Isearch-to-search and vice versa.
 ;; - Search non-matches.
 ;; - Highlight subgroups in matches.
 ;; - Improve documentation.
+;; - Support toggling search case sensitivity.
 
 ;;; Code:
 
   (goto-char beg)
   (pulse-momentary-highlight-region beg end 'isearch))
 
+;;;###autoload
+(defun search-from-isearch (beg end)
+  (interactive
+   (if isearch-mode
+       (save-excursion
+         (isearch-done)
+         (search-read-target nil nil
+                             (if isearch-regexp
+                                 isearch-string
+                               (regexp-quote isearch-string))))
+     (user-error "Isearch not in progress")))
+  ;; TODO: Consider handling `isearch-recursive-edit' like
+  ;; `isearch-query-replace' does.
+  (search beg end))
+
 ;;;###autoload
 (defun search-lines (beg end)
   "Go to and pulse line starting at BEG and ending at END."