unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@jurta.org>
To: Drew Adams <drew.adams@oracle.com>
Cc: 15839@debbugs.gnu.org
Subject: bug#15839: 24.3.50; `isearch-allow-scroll': be able to scroll point off screen temporarily
Date: Sat, 09 Nov 2013 02:57:23 +0200	[thread overview]
Message-ID: <878uwyo0i4.fsf@mail.jurta.org> (raw)
In-Reply-To: <51df60b6-e152-4989-a27e-70dadb9b7474@default> (Drew Adams's message of "Fri, 8 Nov 2013 15:02:42 -0800 (PST)")

> 1. Non-nil `isearch-allow-scroll' lets you use a scroll command
> (e.g. `C-v') without exiting Isearch.  Unfortunately, this is coupled
> with the hard-coded behavior that you cannot scroll far enough in either
> direction that point would be moved off screen.

You can do what you want with just:

  (advice-add 'isearch-post-command-hook :override (lambda ()))

And if you want more commands to escape this restriction:

  (mapc (lambda (c) (put c 'isearch-scroll t))
        '(forward-char backward-char right-char left-char
          forward-word backward-word right-word left-word
          forward-sexp backward-sexp forward-paragraph backward-paragraph
          move-end-of-line end-of-visual-line move-beginning-of-line
          beginning-of-visual-line next-line previous-line))

> That restriction is general for Emacs, and it generally makes sense.
> It does not necessarily make sense during Isearch, however.  Why?

Because it is too confusing for users.  This is like leaving point
in one place, and scrolling without changing the position of point
(with inactive Isearch).  Isearch should not be different from the
default Emacs behavior.

> It's a bit like using `C-SPC' in a buffer, scrolling up a couple of
> screenfuls to look at something, and then using `C-u C-SPC' to return.
> But in Isearch there is no need for `C-SPC' or `C-u C-SPC': the search
> position is recorded.  Search resumes from that same position, no
> matter how far away one might have scrolled.

It makes sense to resume search from a new position like you can see
using code above.

> The enhancement request is to let users choose whether non-nil
> `isearch-allow-scroll' should limit you to scrolling only enough to keep
> point in the window or should not limit you.  This could be done by
> recognizing different non-nil values.

Maybe a new option of `isearch-allow-scroll' could allow this.

> 2. What's more, the lazy highlighting of search hits is even more
> limited currently.  When you scroll to the current limit, there can be
> lots of search hits that are not highlighted.

When scrolling outside the window boundaries will be allowed then
lazy highlighting should highlight the whole buffer so you could see
all matches when you quickly scroll the buffer.  But in this case
lazy highlighting will become more like hi-lock mode.





  reply	other threads:[~2013-11-09  0:57 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-08 23:02 bug#15839: 24.3.50; `isearch-allow-scroll': be able to scroll point off screen temporarily Drew Adams
2013-11-09  0:57 ` Juri Linkov [this message]
2013-11-09  3:09   ` Drew Adams
2013-11-10 13:46 ` Stefan Monnier
2013-11-10 16:52   ` Drew Adams
2013-11-11 19:08     ` Drew Adams
2018-11-24 22:45 ` Juri Linkov
2018-11-25  3:14   ` Drew Adams
2018-11-25 20:15     ` Juri Linkov
2018-11-26  0:16       ` Drew Adams
2018-11-26 23:35         ` Juri Linkov
2018-11-27  0:49           ` Drew Adams
2018-11-28  0:35             ` Juri Linkov
2018-11-28 15:15               ` Drew Adams
2018-11-28 23:01                 ` Juri Linkov
2018-11-29  3:36                   ` Drew Adams
2018-11-29 22:23                     ` Juri Linkov
2018-11-30  0:27                       ` Drew Adams
2018-11-30  7:28                         ` Eli Zaretskii
     [not found]                         ` <<83lg5bc9d6.fsf@gnu.org>
2018-11-30 15:33                           ` Drew Adams
2018-12-04  0:29                         ` Juri Linkov
2018-12-04 14:46                           ` Drew Adams
2018-12-04 20:46                             ` Drew Adams
2018-12-04 21:38                               ` Juri Linkov
2018-12-05  0:32                                 ` Drew Adams
2018-12-05 23:44                                   ` Juri Linkov
2018-12-06  1:20                                     ` Drew Adams
2018-12-05 12:59                           ` Michael Heerdegen
2018-12-05 23:49                             ` Juri Linkov
2018-12-06 12:15                               ` Michael Heerdegen
2018-12-06 23:03                                 ` Juri Linkov
2018-12-07 12:42                                   ` Michael Heerdegen
2018-12-08 23:38                                     ` Juri Linkov
2018-12-09  1:13                                       ` Michael Heerdegen
2018-12-10  0:21                                         ` Juri Linkov
2018-12-10  0:58                                           ` Michael Heerdegen
2018-12-11  0:37                                             ` Juri Linkov
2018-12-11 18:22                                               ` Michael Heerdegen

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=878uwyo0i4.fsf@mail.jurta.org \
    --to=juri@jurta.org \
    --cc=15839@debbugs.gnu.org \
    --cc=drew.adams@oracle.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).