From: Drew Adams <drew.adams@oracle.com>
To: charles@aurox.ch, Drew Adams <drew.adams@oracle.com>
Cc: 32956@debbugs.gnu.org
Subject: bug#32956: 26.1.50; t-m-m mark deactivation documentation
Date: Sun, 7 Oct 2018 01:02:28 +0000 (UTC) [thread overview]
Message-ID: <8e713508-f360-4fcd-9288-e094d450683a@default> (raw)
In-Reply-To: <<m2efd2272p.fsf@aurox.ch>>
> > BTW, this (the manual) might be a good place to mention
> > to Elisp users that (in `transient-mark-mode', at least) the
> > mark is also deactivated by default after each command,
> > by the command loop. Some commands inhibit this
> > automatic deactivation.
> >
> > This is a fairly common question by Elisp users who try to
> > write a command that they think/hope will end with the
> > region staying activated (e.g. for use by a follow-up command).
> >
> > This is maybe a good place to tell them about the automatic
> > deactivation (by default), and maybe even let them know
> > that they can use (setq deactivate-mark nil) at the end of a
> > command definition to inhibit automatic deactivation.
>
> Hmm, deactivate-mark is nil by default -- what effect would setting it
> to "nil" again have? Is it to counteract the effect of previous
> function calls within the command, which may have set
> "deactivate-mark" to "t"?
This is about defining a command that activates the region
and wants to leave/keep it activated after the command
is finished.
Consider, as one example, a repeatable command that
does something with the active region (e.g. indents it).
Because it is repeatable it wants to keep the region
activated, for the next action. It needs to do this at
the end: (setq deactivate-mark nil).
Users sometimes try to define commands that try to
leave the region active, not realizing that the command
loop will deactivate the region when the command is
done - unless the command sets `deactivate-mark' to nil.
> > In fact, this bit of `The Mark' doesn't seem quite right:
> >
> > A command can ... request deactivation of the mark upon
> > return to the editor command loop by setting the variable
> > 'deactivate-mark' to a non-'nil' value.
> >
> > I think that's a bit backward, at least in `transient-mark-mode'.
> > IIUC, the command loop automatically deactivates the mark
> > after each command, unless `deactivate-mark' is non-nil.
>
> Again, though, deactivate-mark is "nil" by default, so it seems that
> some editing function has to set it to "t" for the mark to really be
> deactivated.
I don't understand what you mean by "really be deactivated".
But see above.
next parent reply other threads:[~2018-10-07 1:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <<<m2in2f17jo.fsf@aurox.ch>
[not found] ` <<5399d374-2089-492a-b830-9eb2baac82a6@default>
[not found] ` <<m2efd2272p.fsf@aurox.ch>
2018-10-07 1:02 ` Drew Adams [this message]
2018-10-07 14:39 ` bug#32956: 26.1.50; t-m-m mark deactivation documentation Charles A. Roelli
2018-10-07 19:42 ` Charles A. Roelli
2018-10-08 2:28 ` Eli Zaretskii
2018-10-08 17:23 ` Charles A. Roelli
[not found] <<m2in2f17jo.fsf@aurox.ch>
2018-10-06 14:48 ` Drew Adams
2018-10-06 19:44 ` Charles A. Roelli
2018-10-06 14:19 Charles A. Roelli
2018-10-06 16:39 ` Eli Zaretskii
2018-10-06 19:29 ` Charles A. Roelli
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=8e713508-f360-4fcd-9288-e094d450683a@default \
--to=drew.adams@oracle.com \
--cc=32956@debbugs.gnu.org \
--cc=charles@aurox.ch \
/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).