Re: hs-hide-block-behavior

Johan Myréen <[email protected]> Sun, 9 Aug 2026 21:56:34 +0300
Newsgroups gmane.emacs.devel
Message-ID <CA+TD5hg4md9zJgx4AxUgO6vHQSS+cagy+nouerikWK87XeZGog@mail.gmail.com>
On Sun, 9 Aug 2026 at 20:42, Sean Whitton <[email protected]> wrote:

>
> Hmm, I'm not sure that's a valid reason because then maybe we should
> never use 'point'.
>
> Is 'point' valid semantically then?


Emacs, like many other editors, follows the model set by "glass" terminals:
they define an "insertion point" where a character sent to the terminal is
inserted. Just like in Emacs, this is a place between two characters (or
before the first character, or after the last character). If the terminal
is in "auto-insert" (not "overwrite") mode, the rest of the characters
after the insertion point are pushed to the right (assuming a left-to-right
writing order).

Ideally, the cursor should be just a vertical line marking the insertion
point, not a block covering a whole character. I guess the early CRT
terminals didn't provide enough resolution to be able to show such a thin
line, so a block cursor was used instead, a convention that remains active
today. The mental model is to view the left edge of the block cursor as the
insertion point.

This is the model most editors adhere to today, including Windows Notepad
and word processing software. The most notable exception is the vi editor.
IMO, the biggest screw-up in the vi editor is the "cursor" model, where the
cursor designates a character, not a point between two characters. The vi
model necessitates two different commands for switching to insert mode, "i"
and "a". Because the cursor always has to be on a text character, you can't
move the cursor beyond the last character of the line, except you can!
(With the "a" or "A" commands.)

I see a tendency of the "cursor" model creeping into other editors, I guess
because of the popularity of the vi-like editors today (vim, neovim). I
really hope Emacs does not muddle the "point" model with alternative models
like the "cursor" model.