Skip to content(if available)orjump to list(if available)

I miss Vim

I miss Vim

42 comments

·February 1, 2025

riffraff

As someone who still uses vim: no, you don't.

You'd have the exact same situation with various plugins for LSP or whatever (perhaps not the color scheme, but those always existed for vim too).

You're just pining for a time you had less functionality enabled.

diatone

Yep this reads like someone who tricked out their car, blows out the clutch because it has too much horsepower, then starts pining for the days when they didn’t need a double clutch. You never needed a double clutch!

As an aside I’m surprised that people struggle with vendor management and config management for neovim. Like are people picking unstable packages, or is their config wired up in a super brittle way? If you’re gonna invest in your own tooling, surely it’s your job to set it up to be stable over $TIMEFRAME ? Speaking as someone who’s used pretty much the same Neovim config for a few years with maybe half a day messing with it since setting it up

user432678

I felt the same around a couple of years ago. One day my giant and fragile config got broken beyond repair — I was using package manager without version pinning, my fault essentially. After spending a few days trying to figure which versions of 30+ plugins should work together and also use the settings I had in init.lua (many plugins just deprecated their own settings), I realised I don’t ever want to spend time on this. Went full opposite — installed Vim, found my vimrc from pre-Neovim era, removed all the plugins and happily using it since then, just stuff vim has out of the box.

dailykoder

I understand your and OP's situation and I got overwhelmed by all the fancy plugins myself. But then I realized: Hey, I can just use neovim like vanilla vim and don't have to get the next best plugin when it comes out.

I think it happened when I tried out Mason, too. And it didn't feel like an improvement. So I scrapped my config and started a new one. With Lazy (because that's actually nice), Telescope and a few LSPs I need/want. That's mostly it. You don't have to get much fancier than that. (obviously including some basic vim settings and keymaps, but that's just like in vanilla vim, but in lua)

lawn

Couldn't you just have used your old vimrc with Neovim?

user432678

Well, technically yes, but I also felt like “oh, I can use GVim/MacVim gui”, “oh I can just use built-in colour scheme Sorbet that looks nice”. And also having vanilla Vim saves me from “oh this one lua plugin seems nice, one plugin won’t hurt”. You are right, I sound like the opposite extreme case of having hundreds of plugins. But that’s how I am right now, enjoying old school Vim, have it easily available on any server/VM I manage and my config is a single 88-lines file.

scarlehoff

I also fell into the neovim pit of plugin horrors. The good news is, you can get out, empty completely your config (or rather, go back to vim) and start from scratch with only what you need.

(I now make sure that my config works equally well in vim and neovim so I don't have to worry about the odd server with only one vim)

sudomateo

This article put into words what I felt when I decided to stop using Neovim and start using Helix.

It's exhausting fixing broken plugins after an update and wading through the dozens of Lua configuration files to add support for a new language.

I enjoy Neovim's ability to be customized but I very much enjoy the out of the box experience with Helix.

kombine

This is what Helix did right - putting essentials into the core. I'm still not sold on their editing model, even as someone new to modal editing and not encumbered by existing habits. The improvement is not that dramatic to justify abandoning the vim keymaps which you have in every editor. Also, it is missing features like debugger or git integration, so I will stick with Neovim for now. I do like, though, that they are choosing Scheme for extension language. That alone may convince me to switch in the future.

agile-gift0262

I agree. Helix has been the first TUI editor that I have been able to be productive on. With Emacs, vim and neovim, there was so much fiddling just to get started. And the more functionality I added, the slower and bigger the editors became, so I kept going back to the JetBrains suite and vscode.

With Helix, it was love at first sight. I like how discoverable its UI is. I prefer the modal approach of Helix where movement goes first, so that I can see over what what and where my action will take place. I like not having to fiddle with plugins. I like the defaults, meaning my config file fits on my screen and there's still vertical space to spare.

dsff3f3f3f

I did the same and don't regret it. My Helix config is 4 lines and it does 95% of what I want. The performance of a ton of neovim plugins is also atrocious and I always hated that everything was a hodgepodge mix of C, vimscript and Lua.

Zizizizz

https://github.com/nvim-lua/kickstart.nvim single file config in lua with the essentials. Some of the article still rings true though.

bsnnkv

Since I see Helix being mentioned here, I'll start this comment by noting that I am the author of the helix-vim[1] repo which has been shared very widely at this point.

I still stand by everything I wrote in that repo, but these days I'm a very happy NixVim user, with my own little mini NeoVim distro, JeezyVim.[2]

I hate to do the "Nix fixes this" meme, but in this case, it really does fix this particular issue of the NeoVim plugin ecosystem and its constant breaking change update culture being a nightmare for end users.

You can build something that works and pin the dependencies all the way down and have a NeoVim config which will pretty much work forever.

Yes, the initial investment is significant, but for me it's absolutely worth it to be able to provision any machine, any VM, any bare metal server and have my entire NeoVim config completely at the ready with all required dependencies in place.

[1]: https://github.com/LGUG2Z/helix-vim

[2]: https://github.com/LGUG2Z/JeezyVim

hiyer

I echo the author's feelings, though not for the same reasons. The main reason I want to be comfortable if not proficient in vim - and why I use it as my goto editor - is so that I know my way around when I have to login to remote servers. But with my neovim setup now relying on Telescope, Ack, and various other plugins, it takes me a minute to get my bearings when I have to work without them on remote servers.

myaccountonhn

Many people here recommend Helix.

Personally I’m a huge fan of Kakoune if you still want something customizable. I say that because it interops beautifully into the rest of the Unix ecosystem, and is extremely easy to extend. The daemon mode makes it easy to use it together with other tools like lf and tig. Building a fuzzy finder is two lines of code.

With Helix you’re kinda stuck if you need something that isn’t supported.

leiserfg

Félix Is like MacOS, it's good until it's not and then you can't extend it.

endorphine

The point is moot, since you can use your vim config as is, with nvim. I did exactly that, so the only change needed was to actually alias 'vim' to 'nvim' in my bash_profile.

So I guess this post complaints about the way the author chose to configure nvim.

bastardoperator

Spot on, this just sounds like complaining for the sake of complaining. Use vim if that's your preference. I used vim for over a decade, and switching to nvim was a breath of fresh air.

laktak

neovim does not support running external programs that have an UI with `!`

So, no.

ablob

I am confused. I tried it with glxgears and it appears to work. It even prints its output (and reading it into the buffer works as well). So what do you mean when you say that it does not support running external programs with a UI?

kbrkbr

How come I can run

!evince filename.pdf

when editing latex files in nvim after compiling?

And, but that does not defeat your point, :term shoots up a terminal in both under Linux.

lawn

Yes it does, just not interactively.

klooney

I've found solace in Helix. It all works out of the box, and it's fun learning a new and slightly different command language.

Xiol32

I've been enjoying my time with Helix, although I've had to undo some muscle memory associated with vim, and add back commands I missed too much (never letting you go, 'dd').

My major complaint with Helix, and one that will stop me from using it long term, is the (IMO) insane undo behaviour. It always undoes too much and then I get myself into a mess. There's something about undo checkpoints and being able to manually create one, but I don't feel managing that should be my problem.

billfruit

While Emacs(I'm speaking of emacs here because that's what I use, but it should apply largely to Vi as well) is very configurable and extensible, I wish something was there that is more "batteries included" than them.

Recently I tried to use Emacs on a windows machine, and found that grep-find wouldn't work because it actually depends on an external grep program.

The same with modern context and language and project aware auto-completion, it's not bundled in, and you need external components like LSPs to work.

iLemming

Well, you either have "pre-assembled" hamburger, or freedom to cook your own. Imagine going to McDonalds and asking them to let you into their kitchen to customize your burger from scratch, choose specific ingredients, adjust cooking temperatures, and rearrange their workflow to match your preferences.

Asking Emacs to be "batteries included" misses its fundamental nature - it's not a fast-food IDE, it's your own personal kitchen for crafting exactly the development environment you want.

Even starter kits - Doom, Prelude, Spacemacs, etc. - are not really "ready-made" products; they're more like recipe books, where you have the freedom to choose and pick from, but they still don't liberate you from having to learn how to "cook things." They don't "magically" solve things for you.

billfruit

Yes, but is there any argument to not to have intelligent automatic code completion out of the box, as a user today.

brianstrimp

That's the unix philosophy of using one tool for one thing, that does it well. The advantage is that it really opens a marketplace which means you are not tied to one solution if that solution turns out to suck. An alternative will quickly pop up, you switch, everybody does that, and in no time the bad piece has been worked around and replaced. This works against the "batteries included" philosophy but avoids being stuck for a long time with sub-par components.

Over time, when things stabilize, that approach can change. But nvim is still very much a moving target.

Python tries a middle ground. An http server is included, sime crypto libs are as well, but if you need something specialized you can still install alternative modules. That model seems to work well.

jampekka

> I wish something was there that is more "batteries included" than them.

There are e.g. Spacemacs and Doom emacs that don't only include batteries, but supercritical nuclear reactors about to explode at any moment. :)

nomilk

The article centers around vim being easy to configure relative to neovim.

A daggy but effective trick I started using is using cursor (i.e. a context-aware LLM) to help modify my dotfiles, including neovim configs.

If it messes up, simply git checkout . to go back to what you had before.

But usually an LLM is much faster and more accurate than I am (I'm obviously no pro when it comes to neovim configs). I'm careful to work incrementally - i.e. small changes at a time, and read them carefully to ensure you understand what they're doing - but using an LLM to help modify dotfiles has honestly helped a tonne.