下の動画のようにundoしてから何かを編集し、やっぱりundo前に戻したいと思った時、undoが上書きされてしまって戻れない、という状況に出くわしたことはありませんか?
例)
hogeと書いてから、undoしてhageと書き直す
この状態からundoしてもhogeには戻れない。もうあのフサフサの頃には戻れない!!
多くのエディタでは変更履歴を直線的に管理するため、undoを使って変更履歴を遡ってから編集してしまうと、undo前の状態に戻れません。
Vimは変更履歴をツリー状に管理するため、変更履歴を上書きするような操作をしても、undo前の状態に戻すことができます。
undotreeはこのツリーを見やすく、使いやすくしてくれるプラグインです。
Install
Vim-plugの場合
Plug 'mbbill/undotree'
Settings
あくまで一例ですが、私は以下のように設定して<leader>u
でUndotreeToggleが起動するようにしています。
nnoremap <leader>u :UndotreeToggle<cr>
Usage
UndotreeToggleでundotreeが開きます。
J,KでTreeを移動、<,>
で保存時の状態に移動できます。
?でキーバインドが確認できるので、忘れても安心です。
Reference
GitHub - mbbill/undotree: The undo history visualizer for VIM
The undo history visualizer for VIM. Contribute to mbbill/undotree development by creating an account on GitHub.
コメント