emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: isearch region or thing at point.


From: Ergus
Subject: Re: isearch region or thing at point.
Date: Tue, 30 Apr 2019 18:57:19 +0200
User-agent: NeoMutt/20180716

On Tue, Apr 30, 2019 at 08:39:56AM -0700, Drew Adams wrote:
Thanks, such addition is welcome.  Currently searching the
active region requires invocation of several commands: M-w C-s M-y
with a bad side-effect of leaving the region in the kill-ring.

However, adding a new option is not a satisfactory solution
because often isearch is used to extend the boundaries of the
active region, e.g. by setting the region's beginning with C-SPC,
then searching the region's end and exiting isearch there.

Fortunately, like Basil mentioned the command isearch-forward-symbol-at-point
bound to 'M-s .' you could create a similar command bound to e.g. 'M-s r'
that would start isearch with the text from the active region.


Hi Drew, very thanks for replying:

My own take on this:

1. A user option is helpful (only) for users who really
  want this behavior all the time.  Unless, that is,
  Emacs decides to let users toggle the option with a
  (search-map) key.  Vanilla Emacs doesn't like to do
  that, opting instead for using a non-option variable
  (letting you toggle that).

Ok, got it

2. It's already simple to search for the region text, as
  Juri points out: `M-w C-s M-y'.  And as he says, you
  can easily define a command that does that from the
  outset.

Of course the user could write anything, but this is a simple basic
functionality available in gedit, geany, vim, qtcreator... but also in
firefox, chromium, and so on... So, there is not any reason why emacs
will provide no "easy" way to enable/access it somehow.

Specially for the detail that we don't disable the region after the
search was canceled. That's a more intuitive behavior.

(Is a problem of simplicity and effort for the user)

  FWIW, as one user, I don't have a problem with `M-w'
  adding the region text to the kill-ring.  I don't see
  that as a "bad side-effect" but rather as something
  often useful.  But sure, you can make searching for
  selected text be independent from adding that text to
  the kill-ring.

Touching the kill-ring for a simple search is unnatural, but also the
command is extremely long (and sparse in the keyboard) for something
that any programmed needs every 5 minutes.
  If you set option `mouse-drag-copy-region' to non-nil
  then text selected with the mouse is automatically
  added to the kill-ring, so you can just use `M-y'
  during search to yank it.

In my opinion Emacs should be equally functional with and without the
mouse. There are people (like me) that still use emacs only in terminal
mode.
3. There are several different ways the active region
  can be useful for Isearch.  Juri mentioned one:
  extend the region end to a searched position.  Each
  way to use the region should be optional, and
  sometimes some of them can be combined.  Whatever you
  provide, please make it optional.

  By way of example, here are some ways the region can
  be used for Isearch that are offered by library
  Isearch+ as optional behaviors:

  a. Search only within the active region: option
     `isearchp-restrict-to-region-flag' - toggle with
     `C-x n' while searching.

  b. Show match numbers only for search hits within
     the region (has an effect only when search is
     limited to the region): option
     `isearchp-limit-match-numbers-to-region-flag' -
     toggle with `M-s %' while searching.

  c. Deactivate the region for Isearch: option
     `isearchp-deactivate-region-flag' - toggle with
     `C-SPC C-SPC' while searching.

  d. Select the last search or query-replace target,
     that is, make it the active region.  Do this
     either per option `isearchp-set-region-flag'
     (toggle with `M-s M-SPC' while searching) or on
     demand: `isearchp-set-region-around-search-target'.

  e. Create a noncontiguous region from the
     lazy-highlighted text (search hits): `M-s z r'
     while searching.

  f. Add/remove a text property to/from the region.
     Search only areas that have that property with
     particular values.  Works also for overlays.

  g. Search outside the area that would normally be
     searched (e.g. the region or a set of zones).
     That is, complement the search space.  Toggle
     with `M-= ~' while searching.

  There are no doubt other ways the region can be
  used for Isearch.  We should not assume that
  there's only one thing users might want to do
  with it.  Keep their, and our, options open.

[https://www.emacswiki.org/emacs/IsearchPlus]

Actually I am only considering the option of adding a new function and
bind it to M-s r.

Or add a C-something like isearch-yank-word-or-char.

(because I know that core option changes is complicated to agree in the
list, and I don't like to spend hours on that.)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]