At the risk of restarting the Editor wars (https://en.wikipedia.org/wiki/Editor_war) from days of yore, I find it interesting that emacs wasn't even in your list of contenders. I hear it mentioned less frequently these days, so perhaps it's going by the wayside?
For the record, I'm a vi/vim user! I had the privilege of being taught to use it by an RFC-writing greybeard decades ago, and have used it without thinking ever since.
For those who find themselves on a machine with only vi/vim, or want to learn, here's a quick primer when editing a file (usually done by typing "vi foo.txt" in a shell) --
:q! ...Force quit vi (:q also works -- gentler!)
:wq! ...Save file and quit vi
i (then type characters) ...insert text at current position
A (then type characters) ...Insert at end of current line
G ...go to first character of last line in the file
/foo ...search for first occurrence of "foo" in the file (hit / again to find additional instances)
x ...Delete character under cursor
:56 ...Go to line 56
yy ...Copy the line the cursor is currently on into the buffer
p ... Paste the buffer
r (then type character) ...Replace character under cursor
u ...undo (hit multiple times to undo prior actions)
When done with a command like this, hit Esc to go back into normal mode.
Second nature after a bit of practice! I used to work with a guy who insisted on using ed. That was... odd.