The reason is b/c vim predates GUIs. Yes, as in all of them:-D. (Or rather, its predecessor vi did and vim unlike others very much remained true to its origins)
Even now, there are many places e.g. when doing server maintenance or accessing a compute cluster via SSH, sometimes you do not have a handy GUI environment accessible, at which point your choices become extremely limited, and it helps that vim has been installed on every Unix-i/Linux-ish machine since the 80s.
GUIs are superior, ofc, when they work. On a daily basis I even use a GUI for vim - MacVim (for Windows there used to be Cream but I am very out of date there), and there is always gVim. I could use something else but I am familiar with vim and it is EXTREMELY powerful - e.g. I could indent 100,000 lines in the middle of a file without having to manually select all of them at once first, or better still only do the indentation based on matching a pattern.
It is very advanced, and thus not for everyone, and even those of us that use it often prefer the GUI way for simple tasks like select a contiguous block of 5 lines, but it offers the benefit that it works in the widest possible number of scenarios - e.g. more than nano. emacs does too, except its commands are so configurable that the X-windows GUI number 1, X-windows GUI number 2, and command-line versions all use entirely different shortcuts, so a cheat sheet would not help. vim offers consistency that, afaik, is absolutely unmatched anywhere.
Even when Emacs had two GUI versions, the default keys were pretty much the same between them, as far as I recall, excepting features missing from one or the other. For a very long time now, it's all been reconciled as GNU Emacs, anyhow, whether CLI or XWin GUI, or even on a Mac or (shudder) MS Windows. I just use my local running Emacs, with my preferred configuration, to edit files anywhere, such as inside a running container on a remote server in AWS, so it's pretty consistent for me.
Thanks for the update - I so rarely use emacs that I might be guilty of misinformation here, as in what may have been true two decades ago is not any longer. I'll try to remember that.:-)
I was shoved into Linux by a nearly dead HPC expert who was definitely angry about the advent of electricity.
Wasn't given any indication of a text editor, I ran across vim for one reason or another and enjoyed his Palpatine-like reaction from seeing me using vim enough to keep using it. And if you're enjoying something, why not
Having a mentor like this is unfathomably valuable. The kind that knows exactly when a printer problem should be fixed with a sledgehammer and are not afraid to apply the “fix”.
So then what makes vim special? From what I understand it's just a "standard" for shortcuts to features that can be shared between different editors, right?
The special thing about vim are the different modes. In a editor which does not support modal editing, you can't bind a letter key directly to a function, or else you can't type that letter any more.