Under shift-select-mode
, cursor keys behave like many other text editing environments: Shift+motion starts selecting (sets and activates the mark, in Emacs terms), and motion without Shift stops selecting (deactivates the mark, in Emacs terms).
So far so good, but Emacs isn't your basic editor. It has so many sophisticated motions that it isn't practical to manage a Shift variant for all of them.
This doesn't mesh well with commands that mark a region. For example, I type
foo
and move the cursor to the beginning, then press C-M-SPC. This results in the mark at the end of the sexp, i.e. after foo
, and the point before the f
. I would expect that pressing S-right
will retain the mark and move the point. But it doesn't: since the previous command wasn't a shift-selectable command (a command with ^
in its interactive specification), pressing S-right
at that point sets the mark before the f
.
How can I configure Emacs so that when the mark is already set and active, Shift+motion doesn't move the mark? I always have transient-mark-mode
on, that's not a concern.