From: Juri Linkov <juri@linkov.net>
To: charles@aurox.ch (Charles A. Roelli)
Cc: 29321@debbugs.gnu.org
Subject: bug#29321: Isearch hit count
Date: Wed, 21 Nov 2018 01:52:17 +0200 [thread overview]
Message-ID: <87r2ff2tou.fsf@mail.linkov.net> (raw)
In-Reply-To: <m2bm6qyrd8.fsf@aurox.ch> (Charles A. Roelli's message of "Thu, 15 Nov 2018 22:15:31 +0100")
> Do you think adding similar behavior to
> "isearch-forward"/"isearch-backward" would be feasible? For example,
> C-6 C-s foo could move point forward to the sixth next occurrence of
> "foo".
Now that isearch-repeat-forward supports a prefix arg, it's easy to do
this for isearch-forward-symbol-at-point with a small patch below.
This allows a trivial implementation of corresponding
Vi-like keybindings. I don't like Vi-keybindings, but here's
the implementation for anyone who likes Vi-keybindings:
(defun isearch-forward-search-symbol-at-point (&optional count)
(interactive "p")
(isearch-forward-symbol-at-point (or count 1)))
(define-key search-map "*" 'isearch-forward-search-symbol-at-point)
(defun isearch-backward-search-symbol-at-point (&optional count)
(interactive "p")
(isearch-forward-symbol-at-point (- (or count 1))))
(define-key search-map "#" 'isearch-backward-search-symbol-at-point)
Here's the patch that adds a prefix arg:
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 6d94ef6693..78c4d7b275 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -887,21 +887,26 @@ isearch-backward-regexp
(interactive "P\np")
(isearch-mode nil (null not-regexp) nil (not no-recursive-edit)))
-(defun isearch-forward-symbol-at-point ()
+(defun isearch-forward-symbol-at-point (&optional arg)
"Do incremental search forward for a symbol found near point.
Like ordinary incremental search except that the symbol found at point
is added to the search string initially as a regexp surrounded
by symbol boundary constructs \\_< and \\_>.
-See the command `isearch-forward-symbol' for more information."
- (interactive)
+See the command `isearch-forward-symbol' for more information.
+With a prefix argument, search for ARGth symbol forward if ARG is
+positive, or search for ARGth symbol backward if ARG is negative."
+ (interactive "P")
(isearch-forward-symbol nil 1)
- (let ((bounds (find-tag-default-bounds)))
+ (let ((bounds (find-tag-default-bounds))
+ (count (and arg (prefix-numeric-value arg))))
(cond
(bounds
(when (< (car bounds) (point))
(goto-char (car bounds)))
(isearch-yank-string
- (buffer-substring-no-properties (car bounds) (cdr bounds))))
+ (buffer-substring-no-properties (car bounds) (cdr bounds)))
+ (when count
+ (isearch-repeat-forward count)))
(t
(setq isearch-error "No symbol at point")
(isearch-push-state)
next prev parent reply other threads:[~2018-11-20 23:52 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-16 19:27 bug#29321: Isearch hit count Charles A. Roelli
2018-10-27 20:55 ` Juri Linkov
2018-10-27 21:31 ` Drew Adams
2018-10-27 22:25 ` Drew Adams
2018-10-27 22:58 ` Drew Adams
2018-10-27 23:23 ` Drew Adams
2018-10-28 0:02 ` Drew Adams
2018-10-28 0:35 ` bug#29360: " Drew Adams
2018-10-28 22:34 ` bug#29360: Add full-buffer choice for `isearch-lazy-highlight' Juri Linkov
2018-10-28 22:57 ` Drew Adams
2018-10-28 3:35 ` bug#29321: Isearch hit count Drew Adams
2018-10-28 22:38 ` Juri Linkov
2018-10-29 0:22 ` Drew Adams
2018-10-29 23:31 ` Juri Linkov
2018-10-30 2:43 ` Drew Adams
2018-10-30 3:19 ` Drew Adams
2018-10-30 3:47 ` Drew Adams
2018-10-30 4:02 ` Drew Adams
2018-10-30 23:07 ` Juri Linkov
2018-10-30 23:35 ` Drew Adams
2018-10-30 23:43 ` Drew Adams
2018-10-31 21:30 ` Juri Linkov
2018-10-31 22:07 ` Drew Adams
2018-11-01 22:22 ` Juri Linkov
2018-11-01 23:46 ` Drew Adams
2018-11-02 12:51 ` Live System User
2018-11-04 0:04 ` Juri Linkov
2018-11-04 0:11 ` Juri Linkov
2018-11-04 1:22 ` Drew Adams
2018-11-04 22:50 ` Juri Linkov
2018-11-05 3:09 ` Drew Adams
2018-11-04 19:13 ` Live System User
2018-11-22 22:03 ` Juri Linkov
2018-11-24 12:55 ` Charles A. Roelli
2018-11-04 16:47 ` Drew Adams
2018-11-04 22:59 ` Juri Linkov
2018-11-05 2:41 ` Drew Adams
2018-11-10 14:27 ` Charles A. Roelli
2018-11-10 20:45 ` Juri Linkov
2018-11-11 9:49 ` Charles A. Roelli
2018-11-11 20:02 ` Juri Linkov
2018-11-13 21:48 ` Drew Adams
2018-11-14 22:36 ` Juri Linkov
2018-11-15 8:02 ` Live System User
2018-11-15 21:16 ` Juri Linkov
2018-11-20 23:43 ` Juri Linkov
2018-11-15 21:15 ` Charles A. Roelli
2018-11-15 21:58 ` Juri Linkov
2018-11-16 20:03 ` Charles A. Roelli
2018-11-17 21:59 ` Juri Linkov
2018-11-20 23:52 ` Juri Linkov [this message]
[not found] <<m2ineavxaz.fsf@aurox.ch>
2017-11-16 22:25 ` Drew Adams
2017-11-19 17:12 ` Charles A. Roelli
[not found] <<<m2ineavxaz.fsf@aurox.ch>
[not found] ` <<1585f8e7-72a7-497c-9879-8bf1dda3f28f@default>
[not found] ` <<m2a7ziw5uf.fsf@aurox.ch>
2017-11-19 19:06 ` Drew Adams
2017-11-20 19:25 ` Charles A. Roelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r2ff2tou.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=29321@debbugs.gnu.org \
--cc=charles@aurox.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.