From: Drew Adams <drew.adams@oracle.com>
To: Ergus <spacibba@aol.com>
Cc: contovob@tcd.ie, Eli Zaretskii <eliz@gnu.org>,
emacs-devel@gnu.org, juri@linkov.net
Subject: RE: isearch region or thing at point.
Date: Sat, 4 May 2019 08:24:21 -0700 (PDT) [thread overview]
Message-ID: <19478b8e-f8cb-48cd-9231-dd82b42b734b@default> (raw)
In-Reply-To: <20190504145636.34kaiqrji7zxsdhh@Ergus>
> >> This patch has changed a lot because some others made suggestions I
> >> considered useful. I will attach the new patch in another mail.
> >>
> >> On the other hand it makes sense that M-w should be used in case the
> >> user wants to add the text in the minibuffer to the kill-ring.
> >> (Something like isearchp-kill-ring-save)
> >>
> >> So maybe M-r (region) or M-i (insert) must be used for what I propose
> >> and Drew may add the isearch-kill-ring-save function he wrote and bind
> >> it to M-w. That way there will be all the copy functionalities in place.
> >
> >I would prefer that, yes. `M-w' to copy to the
> >kill-ring (as usual).
> >
> >Do you need an actual patch to include the command
> >I sent, or can you please just include it (renaming
> >prefix `isearchp-' to `isearch-')?
>
> >> But then we must recommend bind M-r or M-i (or whatever) for similar
> >> functionalities. And if possible correct other modes to be consistent
> >> with that (if that does not start a religious war here please).
>
> There are similar modes with commands to copy text from region into
> minibuffer and all them use different bindings. I just propose to unify
> that somehow when possible.
>
> >Sorry, I don't know what you mean, there. `M-r' is
> >(and has long been) `isearch-toggle-regexp'.
>
> Sorry, I forgot that, So the only alternative is M-i.
There are other alternatives, too (but I'm not saying
they are necessarily better). We have prefix `M-s',
for example.
But aside from a few, I prefer that we use it for
toggle commands. Vanilla Emacs uses it for these:
M-s C-e isearch-yank-line
M-s SPC isearch-toggle-lax-whitespace
M-s ' isearch-toggle-char-fold
M-s _ isearch-toggle-symbol
M-s c isearch-toggle-case-fold
M-s e isearch-edit-string
M-s h r isearch-highlight-regexp
M-s i isearch-toggle-invisible
M-s o isearch-occur
M-s r isearch-toggle-regexp
M-s w isearch-toggle-word
(Note that we already give 2 bindings to
`isearch-toggle-case-fold', which we need not do.)
And Isearch+ uses `M-s' additionally for these:
M-s M-SPC isearchp-toggle-set-region
M-s M-k isearchp-toggle-repeat-search-if-fail
M-s # isearchp-toggle-showing-match-number
M-s % isearchp-toggle-limit-match-numbers-to-region
M-s h L isearchp-toggle-lazy-highlighting
M-s h R isearchp-toggle-highlighting-regexp-groups
M-s h b isearchp-toggle-lazy-highlight-full-buffer
M-s h d isearchp-toggle-dimming-filter-failures
M-s h f isearchp-highlight-matches-other-face
M-s h h hlt-highlight-isearch-matches
M-s h l isearchp-toggle-lazy-highlight-cleanup
M-s h u hlt-unhighlight-isearch-matches
M-s u f isearchp-unhighlight-last-face
M-s v isearchp-toggle-option-toggle
> >> I will try to do the same for replace-like commands.
> >
> >(Not sure what you mean by that, either.)
>
> When region is active; replace-string (and related) limits the replaces
> to the active region. But alternatively we could provide a simple hint
> that inserts the region text into minibuffer and deactivate it, so
> instead of limiting the replace to the region, the region can be used as
> the string to replace.
>
> M-w M-% C-y RET => M-% M-i
>
> Or similar.
Got it. I agree that for Isearch and other things,
such as replacement, there are at least those two
very different ways to use the active region:
1. Copy its content to the kill ring (or the secondary
selection or a register or...).
2. Limit the action to the region (e.g., limit search
or replacement to the region).
That was in fact one of the points underlying my
message, though I didn't state it explicitly.
Replacement commands already let you limit the action
to the active region, even in vanilla Emacs.
Isearch+ (but not yet vanilla Isearch) also lets you
limit the search to the active region.
And in general when the region is active, the typical
change in behavior a command makes is to act on the
region instead of the whole buffer or the part of it
following point.
I agree that it might be good to have key bindings
that consistently reflect this difference - these
two different ways to use the active region.
There are additional ways in which a command can
make use of the active region, of course. But these
two stand out as fairly general possibilities.
It would be good to "standardize" bindings - say
reserve `M-w' (e.g. on a prefix key) for the
"copy-region" (or similar) action, and find another
key (e.g. on a prefix key) for the "limit-to-region"
action.
next prev parent reply other threads:[~2019-05-04 15:24 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-27 0:14 isearch region or thing at point Ergus
2019-04-27 2:15 ` Basil L. Contovounesios
2019-04-29 0:41 ` Ergus
2019-04-29 1:30 ` Ergus
2019-04-29 1:31 ` Ergus
2019-04-29 19:41 ` Juri Linkov
2019-04-29 20:50 ` Ergus
2019-04-30 15:39 ` Drew Adams
2019-04-30 16:57 ` Ergus
2019-04-30 19:58 ` Juri Linkov
2019-04-30 16:25 ` Ergus
2019-04-30 18:49 ` Noam Postavsky
2019-04-30 19:03 ` Ergus
2019-04-30 19:24 ` Noam Postavsky
2019-04-30 20:05 ` Ergus
2019-04-30 20:38 ` Noam Postavsky
2019-04-30 22:39 ` Basil L. Contovounesios
2019-04-30 23:16 ` Ergus
2019-04-30 23:33 ` Basil L. Contovounesios
2019-05-01 0:13 ` Ergus
2019-05-01 20:57 ` Juri Linkov
2019-05-03 16:27 ` Basil L. Contovounesios
2019-05-01 11:20 ` Ergus
2019-05-01 14:33 ` Drew Adams
2019-05-01 16:03 ` Ergus
2019-05-01 16:25 ` Drew Adams
2019-05-03 16:28 ` Basil L. Contovounesios
2019-05-04 9:29 ` Eli Zaretskii
2019-05-03 16:28 ` Basil L. Contovounesios
2019-05-04 9:26 ` Eli Zaretskii
2019-05-04 12:15 ` Ergus
2019-05-04 14:17 ` Drew Adams
2019-05-04 14:56 ` Ergus
2019-05-04 15:24 ` Drew Adams [this message]
2019-05-04 21:06 ` Juri Linkov
2019-05-04 22:40 ` Drew Adams
2019-05-06 19:41 ` Juri Linkov
2019-05-07 2:56 ` Drew Adams
2019-05-07 19:56 ` Ergus
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19478b8e-f8cb-48cd-9231-dd82b42b734b@default \
--to=drew.adams@oracle.com \
--cc=contovob@tcd.ie \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
--cc=spacibba@aol.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).