VimのUndoブランチ

なんとなくVimのundoヘルプを見てたら、undo branchesというセクションがあったんだけどどうもよくわからなかったのでググってみたらとてもわかりやすい解説があった。
vim7 undo branch - undoを使いこなす
下の図は編集の過程を-->で表していて、4から5に移っているのは「2回Undoしてちょっと加筆した」ことを表している。

1-->2-->3-->4
    |
    +-->5-->6-->7-->8
        |
        +-->9-->10

point 2, point 5 のところでそれぞれ分岐している感じですね。このような場合通常のundoで遡ると、10->9->5->2->1 と一直線に戻ることしかできません。

Word、Excel、テキストエディタに限らずドキュメント編集系アプリケーションではUndoを装備していることが多いが、普通は上記の通りいったんUndoして編集を始めるとUndo前の編集が履歴から消えてしまう。VimではすべてのUndoをツリーの形で覚えているのでどこにでも戻れるというのが素敵。頻繁に使う機能じゃないけどたまに必要になるセキュリティ機能かな。