つまりなにしたの?
Vimで作業している時に保存してVimを閉じてしまった。
そのあと、さっきの変更をなかったコトにしたい。というのはよくあるけどデフォルトではそういう設定になっていないことをやらかしてから気づいたのでメモしておく。
用意するもの
- undoデータを保存するディレクトリ
- .vimrcへの設定
Undoファイルって何が入っているのか
ファイルに保存しているのだから、undoファイルの中身が気になる。
for i in range(10): print("hello world", i)
みたいなファイルを
for i in range(100): print("bye world", i)
に変更してUndoファイルに何が書かれているのか確認する。
Undoファイルは今回の場合
/Users/YourHome/.vim/undo/%Users%YourHome%hello.py
みたいな名前で保存されている。
中身を見ると
Vim?UnDo?%%%%%%%%%%%%%%%%%%%%%%%%?^@^@^@^C^@^@^@^Sfor i irange(10):^@^@^@^A^@^@^@^Q^@^@^@^D^@^@^@^D^@^@^@^D^@^@^@^D^@^@^@^D^@^@^@^@^ #もっと長く続く
みたいなワチャワチャしたものが書いてあったけど特に暗号化されているわけではなさそう。
Undoファイルを削除する
~/.vim/undo以下のファイルを削除するればUndoできなくなった。
よそのUndoファイルを持ってくる
対象ファイルとUndoファイルの所有ユーザが異なったりするとUndoファイルは使えない。
設定ファイルなどを普段のユーザで設定して、サービス用のユーザに変更したりすると、Undoできなくなる。