I use a solid box in a terminal and for coding, and a vertical bar for writing in emacs org-mode. But I recently tried out a one-third box[1] in emacs and I am really loving it! It's partway between a box and an underline. Some software has a half-box option but I don't think MacOS Terminal or iTerm2 have that. [Edit: I was wrong — iTerm2 has an advanced setting for "underline cursor width"]
I used to use flashing but have that turned off right now, for reasons I can't remember.
Box if you are overwriting the next char, vertical bar if you are inserting. Dunno whenever you would use underline (I guess if it doesn't work with box for some reason)?
Thats the standard, anyway, so if you don't follow that, you are confusing your users.
I still prefer it the way it was when I started using computers with DOS 6.x and Windows 3.1: underline in console, bar in GUIs, block in both with overwrite mode. Always blinking of course. My problems with modern programs are 1) overwrite mode is usually not implemented and 2) moving the cursor does not reset the blink timer. The first I can understand (although it's trivial to do), but the second results in the cursor getting invisible when moving while pressing the arrow keys. It's the little things...
I'd really like my cursor to kind of glow but my graphics programming skills are not at that level yet.
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).
I used a bar until getting into vim, whose semantics are more box-like (with the cursed exception of the cursor moving one position back upon exiting insert mode, as if it were a bar)
Nowadays I like a box because it stands out on any color combination.
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))