Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
26
Help us understand the problem. What is going on with this article?
@tamanobi

Vimでファイルを開き直してもUndoができるように正しく設定する

More than 5 years have passed since last update.

はじめに

ファイルを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が行えるようになりました。いつまでも戻すことができると安心してファイルを編集できます!

参考文献

26
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
tamanobi
Vim/Python/C++/Common Lisp/PHP/JavaScript/データ分析/機械学習/画像解析/NEM
admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
26
Help us understand the problem. What is going on with this article?