VS Code has always felt clunky to me. It always felt like a halfway house between the speed and simplicity of Vim and the maximalism offered by JetBrains IDEs. I also just generally don’t love GUI apps for code because I desire to be right in my shell.
NeoVim offers LSP, Tree Sitter, DAP, and easy extensibility to reach full parity with any IDE, but with the benefit of it being:
* Faster (both in processing speed but also in my workflow). I can navigate significantly faster in Vim than I can in any other editor.
* More familiar, to me.
I can’t speak to Helix as I’ve never heard of it, but in general, the Vim community is very strong and long-lasting - it’s been a top tier editor for the past few decades and will likely continue to keep that place (albeit NeoVim is the currently favored flavor for me).
Beyond that, the extensibility of Neovim is unmatched in VSCode.
I also do most of my development in a VM and VS code remote shell is significantly slower for me than just ssh + neovim.
> huge amount of work, hoop jumping, and fragility to reach parity
This seems inaccurate. Maybe it’s because I use NixOS but my editor experience is literally the least fragile piece of software I use. I’ve ran into far more issues in both GoLand and VS Code than I have in Neovim. Perhaps because Neovim is less of a walled garden?
It took me about a weekend to properly learn Lua and how Neovim works, and after that, I was set.
> spent months tweaking
I don’t know what process you took, but properly learning the tool from the ground up and minimally adding useful plugins as you go should not take much time at all. I don’t really touch my editor config unless I need to install a new LSP server - it always just works.
—
At the end of the day, the best tool is the one that enables you to be most productive. I find almost anything outside of the terminal clunky (the main exception is my browser).
Thanks, some helpful insights here. (It sounds like the summary is, “set it up and don't fiddle with it too much.”)
I agree that the neovim community is great and neovim is of course very hackable, although there's always room to improve: an API for terminal UI would help a lot when writing neovim plugins and make everything feel more consistent, for example.
> I don’t know what process you took, but properly learning the tool from the ground up and minimally adding useful plugins as you go should not take much time at all.
I built a neovim config from scratch, used built-in docs, community support, and well-known extensions when needed. I wrote small Lua plugins when I couldn't find extensions or workflows that worked for me. And I had fun doing it!
I got something good in a weekend, something very decent in a week or two, but still had a lot of gaps between what I had and what I wanted (session save, restore and quick switching; a Magit-like staging and forge management UI for GitHub CLI -driven PR management; invoking and managing long-running terminal processes from the editor; find/replace in large numbers of files across big projects with something more intuitive than a quickfix list; linting with something lighter-weight and easier to configure alongside LSP servers than ale; quicklists for LSP issues; a simple test runner with quicklist for errors; I can go on…).
After trying out extensions for some of those things but finding nothing that fit the bill, I played with Emacs and had a pretty similar experience there (weeks of work just to reach parity with VSC+a few extensions). I concluded I was wasting my time — it was pretty clear I was after an IDE more than a text editor at this point. VS Code seemed a nice in-between option. There are things I miss from vim/Emacs (speed, keyboard-driven workflow, getting to enjoy and celebrate editors with a community of likeminded weirdos), which is why I tend to get sucked in by these update announcements and discussions. But for the most part VSC is fine.
VS Code has always felt clunky to me. It always felt like a halfway house between the speed and simplicity of Vim and the maximalism offered by JetBrains IDEs. I also just generally don’t love GUI apps for code because I desire to be right in my shell.
NeoVim offers LSP, Tree Sitter, DAP, and easy extensibility to reach full parity with any IDE, but with the benefit of it being:
* Faster (both in processing speed but also in my workflow). I can navigate significantly faster in Vim than I can in any other editor. * More familiar, to me.
I can’t speak to Helix as I’ve never heard of it, but in general, the Vim community is very strong and long-lasting - it’s been a top tier editor for the past few decades and will likely continue to keep that place (albeit NeoVim is the currently favored flavor for me).
Beyond that, the extensibility of Neovim is unmatched in VSCode.
I also do most of my development in a VM and VS code remote shell is significantly slower for me than just ssh + neovim.
> huge amount of work, hoop jumping, and fragility to reach parity
This seems inaccurate. Maybe it’s because I use NixOS but my editor experience is literally the least fragile piece of software I use. I’ve ran into far more issues in both GoLand and VS Code than I have in Neovim. Perhaps because Neovim is less of a walled garden?
It took me about a weekend to properly learn Lua and how Neovim works, and after that, I was set.
> spent months tweaking
I don’t know what process you took, but properly learning the tool from the ground up and minimally adding useful plugins as you go should not take much time at all. I don’t really touch my editor config unless I need to install a new LSP server - it always just works.
—
At the end of the day, the best tool is the one that enables you to be most productive. I find almost anything outside of the terminal clunky (the main exception is my browser).