unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: David Kastrup <dak@gnu.org>, John Yates <john@yates-sheets.org>
Cc: Juri Linkov <juri@linkov.net>, emacs-devel <emacs-devel@gnu.org>,
	Oleh Krehel <ohwoeowho@gmail.com>,
	Dmitry Gutov <dgutov@yandex.ru>
Subject: RE: A better UI than perform-replace
Date: Thu, 19 Nov 2015 14:03:29 -0800 (PST)	[thread overview]
Message-ID: <4153be56-d881-4e31-a28e-e11f0333bacd@default> (raw)
In-Reply-To: <87egfl6acs.fsf@fencepost.gnu.org>

> >   4) respond to the query-replace prompt
> > Following 4) token replacement occurs and the display updates to
> > the next match.
> 
> Wrong response to the query-replace prompt then.

Exactly.

>     Type Space or ‘y’ to replace one match, Delete or ‘n’ to skip to next,
>     RET or ‘q’ to exit, Period to replace one match and exit,
>     Comma to replace but not move point immediately,
>     C-r to enter recursive edit (C-M-c to get out again),
>     C-w to delete match and recursive edit,
>     C-l to clear the screen, redisplay, and offer same replacement again,
>     ! to replace all remaining matches in this buffer with no more
>       questions,
>     ^ to move point back to previous match,
>     E to edit the replacement string.
>     In multi-buffer replacements type ‘Y’ to replace all remaining
>     matches in all remaining buffers with no more questions,
>     ‘N’ to skip to the next buffer without replacing remaining matches
>     in the current buffer.
> 
> So you should have typed a comma.
> 
> Or, once you consider yourself foiled, follow the "press ? for help"
> prompt and discover "^ to move point back to previous match".

Not to mention that the very first paragraph of `C-h k M-%' says:

Replace some occurrences of FROM-STRING with TO-STRING.
As each match is found, the user must type a character saying
what to do with it.  For directions, type C-h at that time.
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

And yes, newbies too (nay, newbies _especially_) should learn
first _how to ask Emacs_.  And having learned that, they should
_ask Emacs_ first.  It's really not complicated to ask Emacs
what `M-%' does: `C-h k M-%'.  And it should really not be hard
to see "For directions, type C-h" up front.  And if you do hit
`C-h' (or `?'), it should really not be hard to understand how
to replace without moving to the next search hit.

(But maybe the text should say "Comma (`,')..." instead of
"Comma...".  Oh, and each of the keys should be enclosed in
quotes, or else none of them should be, IMO.)

Every tutorial and intro to Emacs should start with a basic
lesson about how to _ask Emacs_.  (And every intermediate lesson
about Emacs should include deeper info about how to ask Emacs
about itself, including Elisp.)

I already agreed that an enhancement of `occur' along the
lines of what Oleh suggested should be a welcome addition.
But I disagree about it being difficult to understand or
discover the behavior of `query-replace' (`M-%') - assuming
that you've learned about `C-h k'.

And as David points out, even if you do not check `C-h k M-%',
the prompt itself tells you, over and over, that you can
"press `?' for help".  How someone could claim that the
behavior is difficult to discover is beyond me.  (But people
are different.)



  reply	other threads:[~2015-11-19 22:03 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-15  4:43 Rename refactoring, or something like that Dmitry Gutov
2015-11-16 10:03 ` joakim
2015-11-16 10:17   ` Dmitry Gutov
2015-11-16 11:47 ` A better UI than perform-replace (was: Rename refactoring, or something like that) Oleh Krehel
2015-11-16 18:01   ` A better UI than perform-replace Dmitry Gutov
2015-11-16 22:37   ` A better UI than perform-replace (was: Rename refactoring, or something like that) Drew Adams
2015-11-17 23:52     ` A better UI than perform-replace John Wiegley
2015-11-17 22:57   ` A better UI than perform-replace (was: Rename refactoring, or something like that) Richard Stallman
2015-11-18  0:55   ` A better UI than perform-replace Juri Linkov
2015-11-18  1:40     ` Drew Adams
2015-11-18 12:32     ` Dmitry Gutov
2015-11-19  0:57       ` Juri Linkov
2015-11-19  1:16         ` Dmitry Gutov
2015-11-20  0:40           ` Juri Linkov
2015-11-21 18:23             ` Dmitry Gutov
2015-11-19 12:46     ` John Yates
2015-11-19 16:31       ` John Wiegley
2015-11-19 19:11         ` John Yates
2015-11-19 19:18           ` John Wiegley
2015-11-20  8:06             ` Adrian.B.Robert
2015-11-19 19:46           ` David Kastrup
2015-11-19 22:03             ` Drew Adams [this message]
2015-11-20  0:42               ` Juri Linkov
2015-11-20  8:12                 ` Eli Zaretskii
2015-11-18  8:50   ` Andreas Schwab
2015-11-21  1:41   ` Eric Ludlam
2015-11-16 13:13 ` Rename refactoring, or something like that Óscar Fuentes
2015-11-16 20:53   ` Dmitry Gutov
2015-11-17 11:10     ` John Yates
2015-11-17 13:14       ` Dmitry Gutov
2015-11-17 15:57         ` John Yates
2015-11-16 16:01 ` Eli Zaretskii
2015-11-16 16:03   ` Dmitry Gutov
2015-11-16 17:18     ` Eli Zaretskii

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=4153be56-d881-4e31-a28e-e11f0333bacd@default \
    --to=drew.adams@oracle.com \
    --cc=dak@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=john@yates-sheets.org \
    --cc=juri@linkov.net \
    --cc=ohwoeowho@gmail.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).