[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Mark set by ‘mark-*’ not deactivated by point motion
From: |
Stefan Monnier |
Subject: |
Re: Mark set by ‘mark-*’ not deactivated by point motion |
Date: |
Mon, 17 Sep 2018 15:18:52 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
> Observed behavior: point moves as commanded, mark remains active.
> Expected behavior: point moves, mark is deactivated.
Could you clarify what would be the benefit of the behavior you expect
(other than fitting your expectation, obviously ;-)?
> Pre-emptive counterarguments:
I'm more wondering about why you'd mark a word with M-@ only to
immediately afterwards deactivate the region.
I never use M-@ but I use C-M-SPC all the time, and very often I do
C-M-SPC (maybe repeated a few times) followed by some cursor motion
(including C-x C-x sometimes) to "fine tune" the boundaries of the
active region.
So I rely on this behavior very frequently and I find it rather
convenient not to have to re-activate the mark explicitly when I'm done
tuning its boundaries.
On the contrary, I find the deactivate-mark behavior of
"navigation after shifted-navigation" to be a mis-feature: it forces me
to be careful to keep the shift key pressed until I'm really done
setting up the region and it prevents me from using navigation commands
which I can't use in a shifted form (or which don't (yet) support
shift-select-mode). I don't mind very much, tho: I just use C-SPC
instead, but I think in terms of UI, navigation should never deactivate
the mark.
I have the impression that this behavior was simply copied from other
applications, and those don't have something equivalent to Emacs's C-g,
so their users are used to making a dummy un-shifted cursor movement
when they just want to deactivate the selection. But in Emacs we have
C-g for that.
Stefan
[ Side comment. Emacs made the opposite choice for undo: when you want
to start redoing, you need to perform some dummy non-undo command
because there's no dedicated key-binding to switch between undo
and redo. ]