>>108
速度的な問題点を無視すれば、
編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を
全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の1つ手前
まで、その履歴のコマンドを順に再実行するようにすればUndoは実現できる
事は出来る。

この方法だと、操作の途中に重たい処理が挟まっていた場合が問題となる。重たい
処理が行われた場合は、処理の最初と最後でデータをファイルに保存してしまって、
Undoするときはそれを「起点」にする方法も考えられる。ただし、この場合は、
ファイルへの保存に時間がかかる問題が残る。