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.