On caring for user data: NeoVim caused Vim undo files to be deleted
jandeboevrie
363 points
321 comments
September 27, 2026
Related Discussions
Found 5 related stories in 87.7ms across 7,833 title embeddings via pgvector HNSW
- Breaking persistent undo shows Neovim can't be trusted hoorible · 12 pts · August 29, 2026 · 60% similar
- Ask HN: How do you use Vim in the era of AI? rstagi · 36 pts · July 10, 2026 · 47% similar
- Neovim Removes DHH Quote jjgreen · 20 pts · August 29, 2026 · 45% similar
- Requests to remove DHH impression from Neovim website prompts heated argument drayfield · 15 pts · August 28, 2026 · 45% similar
- Just Fucking Use Neovim hacb · 21 pts · August 20, 2026 · 43% similar
Discussion Highlights (20 comments)
natbennett
I was also a very early user of Neovim. The way I personally remember it being positioned was “Vim, but with breaking changes.”
linsomniac
>I deleted something from this file, maybe last week Don't forget time travel: `:earlier 7d`
recursivedoubts
They are open source developers, giving away free software as a gift. There is no duty here. We can speak, respectfully, of how important backwards compatibility is to us, and ask nicely for them to give more of their time to support it when their free sodftware isn't backwards compatible. Perhaps we can even offer to help implement it. But they have no duty to do so or to "care" for their users. (They have already demonstrated they care for their users, btw, by giving them free software.) EDIT: I missed an important part of the story, which is that they mutated existing files in a non-backwards compatible manner. That should have been avoided, I understand where the (secondary) author is coming from now.
Anduia
TLDR: Neovim did a breaking change to persistent undo
gavinhoward
As a Neovim user, this stopped me dead with painful realization: I may have suffered the same thing but didn't realize it. There was a time when I could not undo something, and it was after a Neovim upgrade. Unlike Dr. Chisnall, I started my editor journey on Neovim, so it wasn't a transition that bit me. However, if the format of the persistent undo file is unstable, and Neovim just deletes it when it doesn't recognize the previous format, then it seems conceivable (to me) that an upgrade after changing the format would delete the file too. Ouch. This is making me think about getting off of Neovim. Yes, FOSS comes as-is, but if there's an alternative...
fooblaster
How does one use persistent undo in vim?
skybrian
Software developers do sometimes make promises to their users, but I think these promises ought to be explicit rather than assumed. You can't simply assume a "duty of care" and expect that other people will understand them the same way you do. (Or rather, you can, but you will likely be disappointed.)
dlisboa
> the attitude that just because something is a persistent file on your filesystem that contains data that you might want is no reason for their program not to delete it meant they had no concept of a duty of care to their users. That's the wrong way to look at it. NeoVIM has a different concept of care for their users. They're optimizing for another kind of care, more in line with modern expectations, which VIM did not care about (hence the fork). It's not better or worse, just different. This same article could've been written about how VIM has no native LSP integration or autocomplete and they don't have duty or care for their users.
mindslight
Continuing the analogy - rather than a relationship that might even possibly include a duty of care , the relationship of the modern surveillance industry (Faceboot, Google, etc) to its "users" is that of arms manufacturers to military targets.
spamizbad
"Vibe shift" is all the rage these days but one area where it's most apparent is modern software. People of Raskin's vintage had a very humanist approach to computing. The mentality was very much an outgrowth of the cultural revolution of the 60s. Computer usage should be joyful rather than toiling. The computer should help you. It should make you feel good about what you create. That stands in stark contrast today, where things are more hostile. Not just in terms of "Dark patterns", or writing off user needs for the sake of expediency... but even the way we talk about technology today. You need to use X, do Y or you're "not going to make it" / "escape the permanent underclass". It's bleak. I recently restored a vintage Macintosh SE I picked up at VCF Midwest and despite its limitations that machine was an absolute JOY to use despite its limitations and nearly 40 years of age. This was a machine and software designed by Raskin's contemporaries and it shows.
neuodev
Awkwardly speaking, Microsoft Word is a great example of a program that appreciates backward compatibility.
sdcfgy
I've used vim since the first time it appeared in Debian repos. I have been told a thousand times that NeoVim is better, more modern and solves many (conveniently never cited) issues. I just ignored it and carried on. Feeling terribly vindicated at this point as it's a feature I use regularly and have no idea that it would be an issue in NeoVim.
jurf
To be the devil’s advocate here, I think Vim needs less backwards compatibility, not more. In the sanctifying of “muscle memory” it completely stopped innovation, to the point of slowly drifting to obscurity. Of the over a hundred students I taught when I helped out in uni, basically no one wanted to learn it, despite my enthusiasm. And I sympathise. As I get older, I slowly grow more and more distaste for software that does not respect my time enough to give me properly-crafted defaults. Vim, in the age of modern editors, cannot compete. Not without 20 plugins with conflicting shortcuts and its self-imposed cliff of a learning curve. And I’m saying this from a place of love; I’ve been using Vim (at least as a VSCode extension) every day for the last 10 years. But it never really grew up to the promise that the “Vim Creep” essay [1] gave me. [1]: https://web.archive.org/web/20190227031109/https://www.norfo... :wq
hyperlinerapp
It’s Open source. Some people just want to keep looking at the gift horse in the mouth.
fatbird
Unsaid in the blog post is that disabling persistant undo is one of the most common config changes for vim users who bother to set things up the way they like. Persistent undo is what causes your filesystem to be littered with tilde files, which have the same name but prefixed with a tilde. Every file you touch with vim gets a tilde version. Your ls output becomes polluted with noise.
bethekidyouwant
That’s why I stopped getting all those swap file messages every time I opened vim…
philipallstar
> Apparently now they’re platforming white supremacists. I am completely unsurprised. Different facets of the same underlying attitude. This was the end of the original Mastodon. Which is why I just can't with Mastodon or Bluesky. Casually tossing around ridiculous claims to back up an opinion on persistent undo.
gchamonlive
Am I missing something? Are people using persistent undo as backup? This seems however more like of a documentation and UX problem. Neovim should warn and ask before deleting old undo files, or at least back them up, but it's not neovim's fault if people don't use reliable backup and versioning systems. Relying on persistent undo for this is kind of a self inflicted wound. Use the proper tools for the job . Saying that neovim developers "had no concept of a duty of care to their users" is really disrespectful. Neovim's Lua API is overflowing with care, you just need to go look.
jeremyjh
This story has no references that support the author's version of events, but it does appear to be substantially true that: 1. The change would break undo history, for both Neovim and Vim [see edit: this is not the really the case] 2. This means Neovim would delete data created by a different program, on another user's computer. 3. This was known before the feature was released. 4. They did it anyway. I don't think there can really be any post-hoc justification of this. https://github.com/neovim/neovim/pull/13973#issuecomment-789... edit: I missed an important detail. The user specified the same path for undodir in both nvim and vim. Vim requires a path to enable the feature - there is no shared default path. The user sharing a path changes the story considerably in my view, because now this is a case of nvim deleting data created by nvim as an alternative to writing a data migration for it. I could still disagree with that, but it makes alternatives like "just use a different path" more complicated at a minimum and really changes my read of this situation completely. I think Neovim's decisions are justfiable in this context. Maybe they could have saved the contents of the old undo folder somewhere and notified the user - arguably that would be more empathic I don't really agree they had a moral duty to do this.
BarbaryCoast
According to the rev history for VIM, persistent undo arrived in version 7.3, released in 2010. So Chisnall may have used it since 2000, but he didn't have persistent undo for at least two of the books he wrote. And it means it wasn't "maintained for almost 20 years", it's at best 16. But it is a nice feature. I do that by using version control. I have it hooked to my editor so that "save" is "check in". Now I have persistent, versioned, copies of all my states independent of whatever tools I happen to be using.