일간

NeoVim이 Vim의 undo 파일을 말없이 지웠다 — "사용자 데이터에 대한 주의 의무"

원문 unsung.aresluna.org ↗

9월 27일 Hacker News에 올라온 글입니다. 원래는 David Chisnall이 8월 28일 Mastodon에 쓴 것을 블로그가 다시 실었습니다. Chisnall은 CHERI 등으로 알려진 컴퓨터과학자이고 오랜 Vim 사용자입니다.

무슨 일이 있었나

Vim과 NeoVim 모두 "영구 undo" 기능이 있습니다. 파일을 닫았다 열어도 실행 취소 이력이 남도록 별도 파일에 저장하는 것입니다.

  1. 그는 새 NeoVim을 시험 삼아 써봤습니다
  2. undo가 동작하지 않았습니다
  3. Vim으로 돌아가도 같은 파일의 undo 이력이 사라져 있었습니다
  4. 확인해 보니 NeoVim이 Vim 형식의 undo 파일을 공지 없이 삭제하고 자기 형식으로 교체했습니다
  5. 이슈를 올리자 메인테이너의 답은 — 영구 undo 형식은 불안정하며, 사용자가 그 데이터의 보존에 의존해서는 안 된다

그가 문제 삼는 것

버그 자체가 아닙니다. 형식이 바뀔 수 있다는 것도 이해합니다. 문제는 다른 프로그램이 만든 사용자 파일을 묻지 않고 지운 것, 그리고 그에 대해 "원래 보장 안 되는 것"이라고 답한 태도입니다. 글 제목이 그대로 결론입니다 — "그들에게는 사용자에 대한 주의 의무(duty of care)라는 개념이 없었다."

사실과 의견

사실: NeoVim이 undo 파일 형식을 바꿨고 기존 파일을 변환이 아니라 교체했으며, 메인테이너가 형식의 불안정성을 들어 답했다는 것.

의견: 그것이 "주의 의무" 위반이라는 평가, 그리고 그가 NeoVim에 대한 신뢰를 거뒀다는 결론. NeoVim 쪽의 상세 반론은 글에 없고, 해당 이슈의 다른 논의도 인용돼 있지 않습니다.

실무에서 할 일

사용자로서는 한 줄입니다 — Vim과 NeoVim을 오가며 쓸 생각이라면 undodir를 둘로 분리하세요. 개발자로서는 더 넓습니다. 파일 형식을 바꿀 때 이전 형식을 읽어서 변환하거나, 못 읽겠으면 건드리지 말고 옆에 새로 만드는 것이 기본입니다. "우리 형식이 아니니 지운다"는 선택지에 없어야 합니다.

2026년 9월 27일에 올라온 글

그날 대시보드 →

이날은 이 글 하나입니다.

댓글

불러오는 중…