はじめに
ファイルをVimで開きなおすと、Undoが使えなくなります
Vimは編集履歴を保持して、Undoが使えるようになっています。しかし、ファイルを一度閉じると、履歴がクリアされてUndoができなくなります。
この履歴をファイルに記録する(set undodir
)ことで、ファイルを閉じてもファイルを閉じる前の操作をUndoできるようになります。
環境
- Vim version 7.4.335
- Mac OS X El Captan 10.11.3
VimのUndoを永続化する(ファイルの変更を記録します)
vimrcを変更して、編集履歴をファイルに記録します。これにより、ファイルを閉じたあとでも、過去の編集履歴をUndoコマンドで遡れるようになります。
Vimの永続的Undoを有効にします。
.vimrcに以下を記述します。そしてディレクトリを作ります(mkdir -p ~/.vim/undo
)。
.vimrc
if has('persistent_undo')
set undodir=~/.vim/undo
set undofile
endif
ディレクトリを用意しないといけません
:help undodir
を読んでみるとわかりますが、エラーが起きた場合は処理を中断して何もしません。例えば、ディレクトリが存在しない場合には、エラーメッセージも出力せずに終了します。
おわりに
ファイルを開き直してもUndoが行えるようになりました
この設定のおかげで、ファイルを開き直してもUndoが行えるようになりました。いつまでも戻すことができると安心してファイルを編集できます!