As a side effect, this greatly simplifies the API for manipulating both.
http://acme.cat-v.org/ https://www.youtube.com/watch?v=dP1xVpMPn8M
Ed is the standard text editor. It doesn't waste precious kilobytes on cursor positioning code.
Speaking seriously, this inherent need for the feedback from the user presentation layer back into the internals is why writing a decent multi-line editor with non-monospace fonts is such a nuisance.
I used to use flashing but have that turned off right now, for reasons I can't remember.
[1] (setq-local cursor-type '(hbar . 8))
Thats the standard, anyway, so if you don't follow that, you are confusing your users.
i just remember where the cursor is supposed to be :P
For editing, a block has more potential than a vertical bar because you always have context of a selected character to perform operations on (e.g. `x` to delete current char in vim). You can also do operations before and after that character (e.g. `i` vs `a` in vim).
Nowadays I like a box because it stands out on any color combination.