Vim/Neovim/Emacs/etc. require a certain "commitment" to them - you have to learn keybindings, for example. Moreover, if you want any fancy IDE features you're addicted to, like hints, autocomplete, static analysis, refactoring, etc. you have to configure it yourself, which still isn't quite straightforward as selecting a plugin in VSCode (perhaps this is a good feature idea?).
Most people just don't think it's worth it, when the existing tools are Good Enough for them.
But once you pass the initial obstacle, vim/emacs/derivatives are really nice to use, and there are plugins for literally anything out there.
Are people seriously training their muscle memory to the default vim keybinding that is so cryptic I don't know what to say.
Since the early days of learning vim, I've changed the "go to end of line" bound as "-" which is next to "0" for "go to start of line" which is way more logically placed than some "^" that even needs shift pressed.
If anyone thinks "because default works on any machine", you need to think how you're wasting your brain cycle on unnecessary complexity for no reason.
For me, "because default works on any machine" is a valid argument for some things and for others it is not.
jk = Esc is so crucial, I can not live without it.
Start of the line on the other hand is just `0w`, so not that clunky.
I guess it depends on how much time you are spending on what amount of different machines :)
These "muscle memory produces some weird result" vs. "this keybinding is not very convenient" also affect my thought process in different ways.
The first one disturbs me much more for some reason.
There's 0 configuring. It's as simple as installing one of the many LSP clients, like ALE, that will automatically detect and start a language server for you with the right arguments.
You and I must have different definitions of "0 configuring". There is no "one" LSP client, so every time I want to spend time training my vim muscle I have to research basically which one [is the best/has the most problems or users], whether the language server works well with it, figure out which plugin manager I should be using, write down and remember the shortcuts to invoke my plugin manager, set up key bindings, set some more configuration flags, then maybe have something working by the end of the day.
After all that, yea I'm more productive but I think the large barrier of entry to CLI editors is what keeps people using IDEs and their Electron cousins.
If that's true, I'd really like to try that. I've never heard of ALE, so thanks for that.
Still, the fact is that you have to know what to install. It's not like the NeoVim manpage mentions any LSP clients. So it requires a lot of tinkering, reading and participating in the community to figure out how to do stuff. That's exactly opposite of 0-configuring.
If NeoVim could bundle an LSP client with it, and have a config key to enable it, that'd be dope.
Of course :) Lspconfig adds an autocommand that does this for you when it detects the filetype, and includes the start commands (that's it, all the other functionality is in core.
Most people just don't think it's worth it, when the existing tools are Good Enough for them.
But once you pass the initial obstacle, vim/emacs/derivatives are really nice to use, and there are plugins for literally anything out there.