Hacker News new | ask | show | jobs
by drbaba 948 days ago
Unpopular opinion: Your problem isn’t Vim, it’s the NeoVim ecosystem. I know because I’ve had the same time sink problem after the Lua ecosystem took off, and have been much happier after I switched to Vim 9 and went back to my good old VimScript config. (Since Vim 9, the config syntax itself is a bit more pleasant.)

It’s stable, it’s minimalist, and it mostly just works. It’s not a full-blown terminal IDE like NeoVim is trying to be - Vim has a different vision, being first and foremost just an editor, and leaving you to use the terminal as the IDE. (I’m not saying you can’t configure Vim as an IDE, but it’s honestly bad at that.)

If you haven’t yet, I would recommend giving good old Vim with a Vim9Script config a try. Install as few plugins as possible, to get familiar with the core editor before adding extra stuff. I would recommend starting with only two plugins: ALE provides plug-and-play LSP support (e.g. install pyright into $PATH and ALE will use it), FZF.vim provides a useful fuzzy searcher for navigating projects. Once you’re a bit more familiar with the core editor, I’d try out some language-agnostic useful plugins like rsi.vim, vim-sandwich, targets.vim, and maybe some language-specific plugins to e.g. enhance markdown or latex highlighting. But the core idea is that you don’t really need many plugins if you learn to use Vim as an editor. For instance, Git support? Just try to work with Git from the terminal first, and only install a plug-in for it if you feel like it is really useful to you.

IMO, part of why Vim has been an efficiency boost for me (before I started trying Emacs+Evil, NeoVim with the Lua ecosystem, etc.) is how little time I needed to spend configuring it. If you learn to use its built-in features right, it’s extremely stable, and after a decade you don’t need to spend much time thinking about it or maintaining it even if you frequently switch languages.

2 comments

I would have written a similar comment, if I hadn't found yours first. I've been a vim user for 20+ years, combined with debian and bash. Those, together with python, have fused into my DNA by now I suspect.

I've tried out neovim on several occasions, but it didn't offer anything I needed (treesitter, lsp, lua: don't need or like either), plus it takes away something I love which is gvim. And worst of all, is what you describe: the neovim ecosystem is in permanent flux. Constantly deprecating, replacing and rewriting existing and new plugins. Re-implementing vimscript plugins in lua, just for the sake of it, but then often half-baked, with missing features and new bugs, only to be abandoned by a new shiny plugin 6 months later.

I much prefer my trusty old vim and vimrc, with stability and reliability. No need to chase the latest new bling, no need being scared that an update with vim-plug will break my things because the dozen plugins I use have been maturing over many years. Useful features, very few bugs, rock solid. Like vim itself, follow thoughtful development, slow and steady.

RIP Bram...

Fully agree - Vim is my editor, but Bash is my IDE!