On Tue, Mar 23, 2021 at 1:10 AM Eli Zaretskii <firstname.lastname@example.org
> Why should a control key must be reserved forever for that very specific
> purpose, and for that very specific purpose only, in the default Emacs
Opening an empty line is a very useful editing primitive, not unlike
going to the next line with RET. Trying to change that will always
cause staunch resistance, especially when the purpose for which this
is done is vague and not perceived as important enough by enough
Let's set aside the historical/hysterical impact for a second and look at the input/effect table (which is why I asked for help understanding the difference between "`C-o C-n' and `C-j' -- for which you all have my thanks):
I take as given that "opening an empty line is a useful primitive", along with "insert a newline at point" and also "insert a newline at point and maybe do some context-specific DWIMish stuff". I think there's plenty of support for this position, even for people who don't regularly perform all of those operations. That gives us ~3 distinct solid effects (more on this later).
On the input side, we sure want RET to be one of those ~3, and I think we can agree that it's default should be the 2nd or maybe the 3rd effect. I personally think that `C-j' is nicely intuitive for a newline-related command, but that might be a sign of my age. M-RET is also very intuitive for an alternative-newline command, seems to work in tty, and is used in a large variety of other contexts (running the gamut from "Org mode in emacs" to "editing inside spreadsheet cells"), so it seems like a solid choice. From what I have seen, `C-o' has the main benefit that a large subset of emacs users have been using it for a very long time, and the secondary benefits of an mnemonic binding with "open line" and similarity (although at least somewhat an uncanny-valley jarring one) to vi's 'o'. Both `C-j' and `C-o' have a slight infelicity with being unused in other editing environments, but that seems like a tertiary consideration to me.
To this, we can add the historical wrinkles around electric-indent recently brought up on this thread, which changed the C-j/RET pair from newline/newline-and-indent to electric-newline-and-maybe-indent/newline -- note the functional swap. This thread contains some evidence of potential issues left over from this change, i.e. mode bindings that seem like maybe they should have been updated to match the "electric swap".
*Without getting into the conversation about changing defaults*, do we generally agree that:
- These seem like the relevant operations
- These seem like the relevant potential keybinds (perhaps among others)
- That there is reason to investigate some of the bindings that are currently in emacs-28 to see if they are confusing when combined with the current "electric newline" bindings?
Thanks in advance,