It's interesting how very subtle design decisions like these matter so much.
It's interesting how very subtle design decisions like these matter so much.
(Background: emacs is a single-threaded lisp program, and "blink the cursor" is just another lisp function [1] running on an event timer. (At least that's the case in GTK emacs). So if any lisp function hard-crashes, the cursor will immediately crash too).
[0] https://en.wikipedia.org/wiki/Spinning_pinwheel
[1] https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/fra...
Also prefer block cursor to underline cursor for the same reason.
blink-cursor-delay (defaults to 0.5 seconds): Keeps the cursor visible and not blinking when you're rapidly navigating around or typing. Most other apps seem to do this sort of thing too, but it's an easy detail to overlook.
blink-cursor-blinks (defaults to 10): Blinks the cursor a certain number of times and then stops blinking.
One way I do customize it is to set blink-cursor-alist to '((t . hollow)). When the cursor blinks it alternates between a full block and the outline of a block so that it never disappears completely.
Edit: M-x blink-cursor-mode FTW - thanks!
I do believe it is the default. Hard to know what's default when you've been carrying over your .emacs for two decades.
Every single fresh install on random throwaway installs I've done has defaulted to a single non-blinking block cursor though.
Ah, that probably explains my confusion. Sorry about spreading it.