I'm relatively new to programming, I've been learning C on linux using nano and it's been very fun. I've recently fallen into the emacs/vim rabbithole and I've been watching videos about emacs, Doom, spacemacs, neovim and reading comments about people switching from this or that to another config or editor, and I've been a bit lost on what to do. Then I realised that I haven't done any coding and spent all of my time focusing on editors. So here is my question (which has probably been asked many times) : what is the point of investing so much time learning all of this when there are some IDEs that are preconfigured with all the functionality a programmer would need ? Does learning neovim or emacs actually save time in the long run? I know that they're much more lightweight than IDEs and I've been really enjoying using the terminal much more than my time on IntelliJ, but having an easy out of the box visual debugger, refactoring and jump into functions can be really helpful in the long run I think, especially when starting to write actual large programs. Nano is fun, but not a time saver. Why did you chose your editor?
I use both vscode with the neovim, and neovim alone. I'm a huge linux geek (so a lot of config-ing), a syadmin (so a lot of config-ing), and a web dev (so I work with js frameworks and typescript/js)
the short answer is yes, it's totally worth it but I want to explain more in detail.
I haven't gotten myself to develop my projects with only neovim, so I do most of my web-dev stuff in vscode BUT with the neovim plugin. because once you learn working with vim keys, using a plain text editor without the key bindings that vim/neovim provide is like hell, so the vim movements are TOP TIER and I wish we had them in every single application in existence. But setting up plain vim/neovim/emacs for something like web-dev has been really hard for me, so I just prefer the more simple out of the box setup of vscode, where everything is easily available, plus neovim keybinds. And for editing config files, writing scripts, hobby projects in python, js , bash, rust, I use neovim and it's really enjoyable. Learning vim/neovim is a HUGE asset for a computer person. firstly it's really fun, second , once you learn it it's really fast and productive, third, you look badass.
This is exactly where I'm at. Learning vim binding has also opened me up to a lot of REALLY great TUI options. lazygit has become something I never want to work without again, and it's only pleasant if you're used to vim bindings. There's also k9s and other great TUI tools out there that make learning vim bindings hugely worth it.
But, after investing a week into heavily trying to get neovim working, I went back to VS Code w/ vim plugin. Still want to get neovim working for me at some point but will have to find time to do it without hurting my professional output.
I will say so far the only pain point I've found running vim plugin in VS Code is missing ctrl/cmd + d... I used to use that a lot to do some really powerful multi-cursor editing and vim bindings ruins it. I actually went and disabled the vim plugin just to go do one thing with uninhibited multi-cursor a while ago, and turned it back on when I was done.