Subject: Re: bug#15821: a better M-SPC

From: Stefan Kangas <[email-masked]>
Date: Tue, 21 Jan 2020 02:20:58 +0100

Stefan Monnier <[email-masked]> writes:

>> My version of M-SPC is an improvement over the original Emacs one in
>> two respects: it operates both horizontally and vertically, and it
>> takes a numeric argument.  See the docstring for details.
>
> I don't myself use M-SPC much and have never used its numeric argument,
> so I'd like to hear what other users have to say about your suggestion.

I'm a heavy user of `just-one-space' (M-SPC), so I will venture to
comment given the lack of replies over the years.  I will not comment
on the code, but only Stefan Monnier's summary of it, so apologies if
there's something that I've misunderstood.

I also want to say first thank you to Toomas for taking the time to
write up a suggestion aiming to improving Emacs.  As will be clear
below, I'm personally not too keen on this particular change, however.

Note first that the numeric argument is currently very easy to
understand: leave exactly ARG spaces.  Negative ARG means to leave
the absolute value of ARG spaces and delete empty lines.

> Reading your docstring, I see the following changes:
> 1- On a non-empty blank line, leave exactly ARG spaces on it (without
>    ARG, make it empty).

M-SPC has until now always left one space by default.  I think the
proposal would make for a very frustrating and confusing user
experience.  Changing it is also backwards incompatible.

> 2- On an empty line, delete all blank lines above and below it, leaving
>    ARG empty lines.

I don't see why we would want to change `just-one-space' to operate on
lines in this way.

I think it would make more sense to modify `delete-blank-lines' to
leave ARG empty lines with a prefix argument.  But that's a separate
feature request, in my opinion.

> 3- At the beginning or end of a non-blank line, delete all leading
>    resp. trailing whitespace, leaving ARG (by default, zero) spaces.

Same comment as above regarding zero spaces.

The rest is no change compared to what we have now, AFAICT.

> 4- Don't treat a negative ARG as meaning to also delete newlines.
>
> Point 4 sounds like an oversight (you don't yourself use that "negative
> ARG" feature, so you didn't bother to implement it), right?

I think one of the more useful aspects of M-SPC, that I personally use
all the time, and which we should most definitely keep.

> For points 1 to 3, the main issue I see with them is that some people
> apparently tend to like M-SPC so much that they hit M-SPC when they just
> want to insert a SPC (Richard mentioned doing that, recently), so
> changing M-SPC so that it sometimes finishes with no space at point can
> be an annoyance.

In summary, if I understand them correctly, I oppose the proposed
changes, which would in my opinion be a change for the worse.  They
would also be backwards compatible and almost certainly break existing
use patterns.  (I know they would for me.)

I therefore recommend to close this as wontfix.

Best regards,
Stefan Kangas