Vim Classic 8.3 released
98 points by bezdomni
98 points by bezdomni
Last year I switched from Vim to Neovim and was pretty happy. Lua config is much nicer than vimscript.
Sadly now that I've written some of my config in Lua, I'm somewhat locked-in. I'm a bit disappointed that ddevault chose to fork Vim 8.2 instead of some comparable version of Neovim. I did find Neovim an improvement overall, and despite it using LLM code I probably won't be switching to vim-classic soon.
Thank you ddevault for all you do. I don't know how you have the energy/time.
If you forked any version of neovim, it would rapidly become incompatible with the ecosystem of neovim plugins. The language - lua - is only half of it. Everything else is still moving really fast.
And with no concern about compatibility.
I use vim’s persistent undo a lot. It’s amazingly useful to be able to go back to old versions of the document. If I reboot without cleanly exiting vim, I can resume from my previous state, undo and all. I have some undo histories that go back years and vim happily preserves them.
I tried neovim and the very first thing it did was overwrite the undo history of the file I opened with one that that was an incompatible format (couldn’t be loaded by vim), and which had none of the history.
Never mind, I thought, everyone makes mistakes and I’m sure they’ll fix it once they know they’ve introduced a data-loss bug. So I opened an issue. I was told by the NeoVim team that no one should ever expect persistent undo to persist undo state reliably and that they regarded the format of the undo files as in flux and something that would break regularly.
I can’t imagine using a tool written by people with suck a cavalier disregard for Raskin’s First Law for anything I cared about even slightly.
The ecosystem and API instability is one of the big reasons I switched away from neovim (to Gram, which I’m very happy with). Updating neovim broke plugins. Updating plugins broke plugins. The current state of my neovim setup is that indentation is completely broken on one computer and LSP is completely broken on another (they use the same nvim config). And sometimes, huge Lua error messages pop up. My setup was working as expected on both computers back when I set it all up.
The Gram 1.0 release announcement hit right after I had run a PlugUpdate on my desktop and LSP stopped working entirely. Suddenly, learning a new editor seemed preferable to the alternative, which would’ve been to spend ages wading through LUA + vimscript soup to get LSP up and running again.
I edit my .vimrc, probably, on an average of something like once every two years. It’s set up and works nicely and I haven’t had any reason to change it for about three years. LSP integration is via ALE and works nicely.
There are a few things NeoVim does for better allowing pop-up overlays that would be nice to have, but nothing looked really compelling to switch to a project that seems to take such an adversarial view of its users.
For anyone else like me who was unaware of Jef Raskin's laws: https://en.wikipedia.org/wiki/Principles_of_user_interface_design
An LLM can convert your Lua to anything in 12 seconds.
Well, if you want to move to vim classic to avoid LLM code, why would you use an LLM to translate your lua?
I don't use vim so I might be way off base here. Based on observing vim users, there seems to be two different users of vim ime. Maximalists "I want to do everything in vim", which are better served by neovim and "unix as ide" vim users, which want to edit in vim, but other other programs for other tasks. Vim classic targets the latter. However vim is a huge codebase, with lots of supported targets/OSes/configurations. As the post acknowledges
acknowledging that our fork lacks the resources and institutional knowledge available to Vim upstream.
It does seem that maybe maintaining a new minimal editor would be a less resource intensive task. Although there are editors like kak and ad that fit the minimal bill, they require existing users to relearn some motions. But something like vis seems like a good place to start. Although it would still need some extending to cover stuff like vimdiff.
Anyways, kudos to putting in the effort to maintain the things one uses and loves! Hope vim classic succeeds.
and "unix as ide" vim users, which want to edit in vim, but other other programs for other tasks ... Vim classic targets the latter
nah, that's a cop-out, and always has been. Nvim serves those users better also, since its CLI is more composable than Vim's, supports "script host" use-cases via nvim -l, and has much better support for RPC and embedded applications (thus "use the right tool for the job").
It does seem that maybe maintaining a new minimal editor would be a less resource intensive task
Then they would surely need to rename the vim command in vim-classic.
As a “Unix as IDE” person, I disagree. Vim is universal, Neovim is not. Therefore none of the features Neovim adds over regular Vim are useful to me. Vim is foundational technology I expect to always work consistently on all of my machines. And as pointed out elsewhere in these comments, Neovim makes breaking changes often. Corrupting an undo file would be an immediate and permanent uninstall for me.
Also I don’t see how any kind of RPC support in Vim is at all related to the “Unix as IDE” philosophy. That aligns much closer with the “maximalist” user profile they described.
As someone in the middle, leaning maximalist, I also agree with the above take.
if I do vim config.foo on a random host, I prefer my vim config I touch every couple of months or years, if I do dev work on my main machine I'm happy to have some breakage, e.g. from 0.11 to 0.12.
I might install vim classic on all my servers, for example.
As someone who only ever used vim for simple text editing, I'm in the minimalist camp. I was happy without any plugins, albiet with a neat and customised vim.rc
I've since switched to vis which serves me the same as vim has for my needs, but has a far more minimal codebase and AFAIK doesn't contain LLM contributed code.
Different adherents worship vim for different reasons.
But I'm not alone in just wanting to
That's what vim gives me. Many plugin creators have "Will this be faster? Will I press fewer keys?" in their mind and it's appreciated.
More minimal or differently minimal would miss this mark.
I like the motions and bindings mostly. My editor was pretty minimal for a long time, but I did eventually end up wanting modern amenities to make my professional work a little less tedious. I've tried vim plug-ins, but they don't compose as well
My editor was pretty minimal for a long time, but I did eventually end up wanting modern amenities to make my professional work a little less tedious. I've tried vim plug-ins, but they don't compose as well
This is exactly the boat I've found myself in over the last two years with regards to my Vim usage. As a result, I noticed myself involuntarily reducing said Vim usage in favor of other editors and IDEs — their plugins don't compose either, but at least they have more features from the get-go.
Have you found a solution for yourself to settle on?
Just a much larger neovim config. Trying to add my vim amenities to other editors is more work than bringing modern amenities into vim ime tho I won't say picking up helix isn't tempting.