Hacker News new | ask | show | jobs
by crop_rotation 1171 days ago
I spent a good amount of time learning vim/neovim and installed tons of plugins, but in the end I didn't see the point. Language support is still nowhere near VSCode, let alone Jetbrains products. I do all my development on a macbook so ultra low memory or being installed by default is not a requirement.

People praise vim/neovim for being small but to get any decent functionality you will end up with tons of plugins. The default vim/neovim is a fine text editor but when you need to write text you have better tools anyways. Maybe one can type fast in vim, but who is writing code limited by the speed of typing.

7 comments

>Language support is still nowhere near VSCode, let alone Jetbrains products.

and vscode/jetbrains vim mode is nowhere near what neovim can provide. so between using a bad version of vim with features, i prefer a bit less features with more... you know, vim :)

The neovim extension for vscode embeds neovim. It doesn't perfectly integrate, but it does scratch the itch for me.
> People praise vim/neovim for being small but to get any decent functionality you will end up with tons of plugins.

If a writer compares VSCode to Word and claims exporting as PDF is "decent functionality" making VSCode a useless tool does he even understand what he's looking at?

You have the same language servers as VSCode, GDB is integrated and works really well. On top of that you have the entire OS and unix philosophy at your fingertips. Even with vanilla vim I have many more features than I ever had with VSCode and the likes.

It's not all about buttons and pretty dropdrowns. I agree the discoverability could be better, but that's a necessary compromise for making just about anything you'd like to do possible.

>Maybe one can type fast in vim, but who is writing code limited by the speed of typing.

Most of the time we edit code, not write it. And this is where (neo)vim shines. You can move between places you want to modify and do so with as little afford as possible.

Language support (at least for languages I use the most) is the same as VSCode and IDEA (give or take) but at least I get to decide what do I want to get from the tool.

>People praise vim/neovim for being small but to get any decent functionality you will end up with tons of plugins.

No, these days you basically need only a plugin manager + treesitter + LSP (add a few UI plugins to your taste).

I think that, strictly speaking, this cannot be entirely true, as VS Code gets language support from the same place that Neovim does - namely from LSP servers. VS Code simply packages these up in extensions, whereas in Neovim you need to install them. Plugins exist to automate this entirely - see Mason. Yes, it is all plugin-based, but this is as opposed to extension-based VS Code.

Some of the VS Code extensions provide some nice added value, such as LLDB debugging for C/C++ and Rust, but you can actually get this in Neovim, you just need to install the extension in VS Code and then point to it from Neovim. If you dig around, you can see this in my dotfiles, linked in another comment. And this is only an issue for debugging compiled code to give nicer variable information for e.g. strings, which is quite specific.

I've also found Microsoft's recent move to Pylance from Pyright has meant a few small things aren't there for Python, which admittedly was disappointed, but again, broadly this isn't an issue at all.

Otherwise, I've not found this issue with Neovim at all.

I prefer an editor that I can customize to my liking and I don't have a conflict of interest with the developers.
Same here. There's always struggle with software, so I prefer to struggle with the software, and not against it.
A few months ago I stumbled on Astrovim which is an opinionated NVim setup. They have built pretty much exactly what I was trying to do by hand. After 20 years of flirting with Vim then going back to other IDEs I think I’ve made the Vim thing finally stick and become productive with it.

It’s partly the type of coding I do, but I’m always contributing on the DevOps side too - Dockerfiles, .env files and the like. Being close to the terminal and within a Tmux session is perfect for that type of work.

I like Neovim but I'm not sure their embedded vision is taking off.

You'd want their framework to end up in a very popular IDE for example, and that's just not happening.

All major IDEs will want full control over their editing component.

Because of that they won't implement "IDE-like" features such as a file explorer (I know there are plugins out there, plugin based systems are always slower and more brittle, both in the present and for updates), moving the command bar to the top, having powerful built-in fuzzy file finding, etc.

Perfect is the enemy of good, since perfect might never come and we could instead have good now or at least soon.

For file explorer and fuzzy finder, neovim does inherit netrw and vimgrep from vim. I use the netrw all the time and have never felt the need to install a file explorer plugin. vimgrep, less so since I have telescope with fzf and ripgrep, but it does exist!