The Spectrum Dispatch News

technology

NeoVim's Deletion of Vim Undo Files Raises Data Preservation Concerns

A long-time Vim user discovered that NeoVim deleted persistent undo files without upgrading them, sparking debate over software's duty to protect user data.

NeoVim's Deletion of Vim Undo Files Raises Data Preservation Concerns

Computer scientist David Chisnall, who has used Vim since around 2000 for writing books, a PhD thesis, papers, and articles, recently shared concerns about NeoVim’s handling of a critical Vim feature: persistent undo.

NeoVim’s Deletion of Vim Undo Files Raises Data Preservation Concerns

According to Chisnall’s account, Vim’s persistent undo allows users to recover deleted content from files even after reboots or long periods of time. He described the feature as invaluable for recovering accidentally deleted work or tracking changes made before a file stopped functioning. Vim has maintained this capability across major version upgrades over approximately 20 years.

When Chisnall tried NeoVim, a fork of Vim, he encountered a significant problem. NeoVim had changed the format of undo files but did not upgrade existing Vim undo files or use a different filename. Instead, according to Chisnall, NeoVim deleted the existing Vim undo files and replaced them with files in a new format that Vim could not read, effectively destroying the undo history.

Chisnall reported raising an issue about this behavior and receiving a response that the persistent undo format was unstable and users should not rely on data preservation in a feature explicitly named “persistent undo.” He was told the format had changed once and would likely change again.

Chisnall cited Jef Raskin’s First Law from “The Humane Interface,” which states: “A program may not harm a user’s data or, through inaction, allow a user’s data to come to harm.” According to Chisnall, while he could have forgiven the deletion as a bug, the attitude that a program could delete persistent data files without upgrading them or providing warnings demonstrated a lack of duty of care to users.

The incident highlights the tension between software development practices and user data protection. While format changes are sometimes necessary in software development, the manner in which legacy data is handled—whether through migration, warnings, or alternative filenames—can significantly impact user trust and data safety.

Key facts

  • NeoVim deleted Vim’s persistent undo files without upgrading them or using different filenames
  • The deleted undo files contained years of editing history that could not be recovered
  • NeoVim developers stated the undo format was unstable and users should not rely on persistent undo
  • Vim has maintained persistent undo compatibility across major version upgrades for approximately 20 years
  • The incident prompted discussion about software’s responsibility to protect user data

Sources

← All posts