[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#39512: 28.0.50; Add command isearch-yank-region
From: |
Tino Calancha |
Subject: |
bug#39512: 28.0.50; Add command isearch-yank-region |
Date: |
Sun, 09 Feb 2020 12:21:10 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Juri Linkov <juri@linkov.net> writes:
>> During an incremental search, this command appends the region
>> to the search string. Otherwise, start an incremental search
>> using the region as the search string.
>
> What use cases do you think it could be used for?
> I don't see any useful case for appending the region to the search string.
Me either. I believe I have copied such an append wording from
elsewhere. What I have in mind is just to set the search string = to
the region.
> I see only 2 useful cases that don't append the region to the search string:
>
> 1. Before starting isearch, the user selects the region,
> then types a special command bound to a key on the global `M-s' prefix
> that yanks the region to the initially empty search string
> (i.e. it doesn't append, it replaces the empty search string)
> 2. The second useful case is to activate the region, start isearch,
> use isearch to find the string at the region end, thus moving the region
> end
> to a new position, replace (don't append) the search string with region
> text -
> this is what isearch-yank-region could do.
> IOW, sync the region with the search string.
I was motivated with a scenario similar to 1.
1. I select a region that I want to search for
2. C-s ; I start an interactive search
3. `some keybinding here'; that sets the search string = to the region.
I think on 3. as an alternative of `isearch-yank-until-char' (and
family). Sure, having the command to start the search directly with a
M-s prefix is desirable too.
My mind finds easy to remember that I always can do the patter:
C-s
;; Now some keybinding that sets the search string with `isearch-yank-
(whatever)
>> +(defun isearch-yank-region ()
>> + "Pull region into search string.
>> +If called out of an incremental search, then start an incremental
>> +search with the region as the search string."
>> + (interactive)
>> + (cond ((use-region-p)
>> + (unless isearch-mode (isearch-mode t))
>> + (isearch-yank-string (funcall region-extract-function))
>
> Here (funcall region-extract-function) signals the error
>
> (wrong-number-of-arguments (1 . 1) 0)
>
> Have you tested your patch?
Opps, I tested without emacs -Q. sorry for that! I have some advice
in that function that lets me call it with no arguments.