Subject: bug#29321: Isearch hit count

From: Juri Linkov <[email-masked]>
Date: Sun, 04 Nov 2018 02:04:52 +0200

>   Now that you have the count, would it be posible to add a
>   command to specify which occurane of a match to go to and/or
>   highlight?
>
>   Lets say there are 100 matches.  I search through them and wind
>   up at 42/100.  I stop seaching and do something else.  I decide
>   I want to go back to my previous search.  It would be very handy
>   to have a command to do "goto match 42" or "goto match 67" or
>   "goto match last-match" .e.g. go directly to 100/100 (since 100
>   is the last found numbered match reported by isearch) and I would
>   then see the 100th match highlighted and the indicator displaying
>   "100/100".
>
>   Let me know if this should be a separate enhancement request.

Thanks for the enhancement request.  This is possible to do with
this patch.  It allows to go to the beginning of the buffer and type
'C-s C-4 C-2 C-s', and it will go to the 42th match using the
previous search string:

diff --git a/lisp/isearch.el b/lisp/isearch.el
index 580b3ac40a..2dbb890d88 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1563,15 +1572,19 @@ isearch-repeat
   (isearch-push-state)
   (isearch-update))
 
-(defun isearch-repeat-forward ()
-  "Repeat incremental search forwards."
-  (interactive)
-  (isearch-repeat 'forward))
+(defun isearch-repeat-forward (&optional arg)
+  "Repeat incremental search forwards.
+With a prefix argument, repeat a search ARG times."
+  (interactive "p")
+  (dotimes (_ (or arg 1))
+    (isearch-repeat 'forward)))
 
-(defun isearch-repeat-backward ()
-  "Repeat incremental search backwards."
+(defun isearch-repeat-backward (&optional arg)
+  "Repeat incremental search backwards.
+With a prefix argument, repeat a search ARG times."
   (interactive)
-  (isearch-repeat 'backward))
+  (dotimes (_ (or arg 1))
+    (isearch-repeat 'backward)))
 
 
 ;;; Toggles for `isearch-regexp-function' and `search-default-mode'.