[Top][All Lists]

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

Re: `isearch-allow-scroll' - a misnomer and a bad design

From: Stephen J. Turnbull
Subject: Re: `isearch-allow-scroll' - a misnomer and a bad design
Date: Thu, 22 Sep 2011 01:35:02 +0900

Richard Stallman writes:
 >     > FWIW: Several people have expressed this idea, with which I agree.
 >     > C-u should do nothing by itself (and that includes not exiting
 >     > Isearch, of course).  Its only effect should be to provide a prefix
 >     > argument to the next command, to extend its behavior.
 >     I tend to agree.
 > This reasoning is based on thinking of Isearch as a kind of a mode,
 > but that's exactly what we should avoid.

Why?  That's like saying, "thinking of Shovel as a kind of a digging
implement" is exactly what we should avoid!  I am not saying we should
have gratuitious modality in Emacs.  I'm saying that if we have
unavoidable modality, we should not kid ourselves.  In the present
Isearch implementation, I see no way to disabuse users of the naive
intuition that one "enters" and "exits" Isearch.  The minibuffer
activates and deactivates, and so does an idiosyncratic form of
highlighting in the buffer.  The behavior of the minibuffer is itself
changed, since the cursor does *not* jump to the minibuffer as it
normally does.  Normally self-inserting characters become motion
commands.  If that last is not modal, what is?

In any case, my own intuition happens to be the opposite of yours.  I
see the *current* behavior of C-u as being very much affected by the
modality of Isearch, and it bothers me.  When I type C-u in any other
situation, Emacs quietly waits until I type something else.  It does
not immediately make any perceptible change to the Emacs environment.
But when using Isearch, C-u visibly disturbs state, ie, the state of
the search.

>From this point of view, the whole point of Alan's changes (and of
Drew's suggestion as well) is to *reduce* the modality of isearch.
With Alan's option *on*, scrolling commands now work as they do
elsewhere in Emacs: the visible portion of the buffer at hand changes,
without disturbing the state of the buffer or the search.  With
Drew's option *on*, C-u now works as it does elsewhere in Emacs,
providing additional context to the next command, without disturbing
the state of the buffer or the search.

It seems to me that both of these changes make Emacs as a whole less
modal, not more so.  And I agree that making Emacs less modal is a
good thing.

As for the other bindings in isearch-mode, I agree that even the
relatively few we have now do increase the modality of Isearch, and
I'm of mixed feelings about almost all of them (especially C-w and
C-y, which are both most useful to me personally, but also require the
most effort of me to overcome muscle memory).  However, I see such
bindings as a very different issue from the more subtle changes of
which Alan and Drew wish to avail themselves.

reply via email to

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