I don't disagree, but then you shouldn't update Neovim if you are not ready for that. I'll go even farther: don't use Neovim if you are not going to write the config yourself.
Vim/neovim/emacs are all tools for power users, writing your own configuration and extensions is intended.
The authors of these tools have no wish to capture market share or users.
Use vscode if it fits you, no one minds or cares.
Agreed. Neither VS Code nor VS Codium (my preferred variant, telemetry-free) have ever broken my setup with an update, something I can’t say about NeoVim or Emacs.
I've had one vanilla vim breakage in over a decade of use. A common pattern I see that inhibits vim usage is:
- Using too many plugins without understanding all that vim has to offer.
- Cargo culting configs instead of building up little by little.
- Trying too hard to rice vim in appearance without adding meaningful utility.
The same applies for Emacs. Vim and emacs are powerful editors not controlled by corporations, have succeeded for decades when other editors have floundered, can run in any basic computing environment/terminal, and are logically present in many Unix tools. Like all of software engineering, a deeper understanding of the system you're using pays huge dividends in the long run.
In short, take the time to learn one of these editors in it's basic form and then nurture a small config that can go a long way, and you will find success.
I'd suggest learning and understanding the vim way of doing things instead of trying to shoehorn the workflow you're used to from VSCode. It's a different world, and it can be really fun to explore but you have to commit.
Start small with empty config and no plugins and search the web when ever you want to do things. Yes at first it feels strange and even stupid that you search replace with '%s/oldword/newword/gc'. Then you realize sed in the terminal is the same syntax, 'sed s/old/new/g' and things start to click.
Once you're comfortable you know what you want out of the tool and what features you'd like to add. Chances are you'll find completely new ways of doing things with much more flexibility so don't limit yourself to the plugins too early. The only plugins I use today is fzf, and nvim-lspconfig.
If that's your motivation it could still be useful. Almost every live coding interview I've had so far has a part where I'm explaining the magic tricks I'm performing in vim. I have to remember to slow down and explain my thoughts as I zip through the code or they will just see code moving around the screen.
For me it's mastery of my toolbox. Understanding vim pushed me further down the rabbit hole and now my computer works for me. If I help anyone my palms get sweaty as they scroll scroll scroll through the code, but I keep it to myself and remember to breath. Maybe I could do some leetcode (whatever that is) while waiting?
No not really. Granted I've never used any of the emulators (outside of firefox) but vim is so much more than handy keybindings for editing text. It's difficult to explain and has to be experienced. And even if the integration is 1:1 it won't help with resources so I don't see the point.
Resources was my only motivation when I made the switch, had to because everything was electron and my laptop couldn't handle it. Now I'm a few years in and whenever I get tired of doing something repetitive I create a keybinding to perform that action.
A recent example is take the current filename (%) remove the extension (:r) and run it with valgrind to monitor memory usage. Bind it to <leader>vg and it looks like this:
nnoremap <leader>vg :!valgrind ./%:r<CR>
When I hit it in the file 'my-program.c' it runs 'valgrind ./my-program' and I get the output in the built-in terminal. Very simple example but shows how easy it is to add any command-line tool you want without reaching for plugins, and integrate into your workflow instead of inheriting someone else's. Any command and combination of keypresses can be turned into a keybinding.
I understand it's not for everyone, but comparing it to vscode and judging from that perspective is missing the point entirely. I don't type letters when I edit code, I execute and compose commands, it's a different mindset.