savevers.vim : ファイルの編集履歴を自動的にナンバリングして記録
ファイルの編集履歴をローカル・ヒストリーとして記録し、 少し前の作業までファイルの状態を戻したり、 バージョンの違うファイル同士で差分を取ることができるようにします。 (Mac)
概要
savevers.vim : Automatically save and diff multiple, sequentially numbered revisions (like VMS)
http://www.vim.org/scripts/script.php?script_id=89
ファイルの編集履歴をローカル・ヒストリーとして記録し、 少し前の作業までファイルの状態を戻したり、 バージョンの違うファイル同士で差分を取ることができるようにする vimスクリプトです。
JavaIDE eclipseに、このスクリプトと似たような機能があります。
インストール方法
vim online から、 スクリプトをダウンロードしてきてください。
ファイル | URL |
---|---|
savevers.vim | http://www.vim.org/scripts/script.php?script_id=89 |
ダウンロードしたスクリプトは、 $VIMRUNTIME/plugin などのプラグインディレクトリにコピーします。
次に_vimrc設定ファイルに、savevers.vimの設定を追加します。
とりあえずで使用したいのであれば、_vimrcファイルに以下の設定を追加してください。
:set backup :set patchmode=.clean :let savevers_types = "*" :let savevers_dirs = &backupdir :let versdiff_no_resize=1 :nmap <silent> <F5> :VersDiff -<cr> :nmap <silent> <F6> :VersDiff +<cr> :nmap <silent> <F8> :VersDiff -c<cr>
savevers.vimプラグインに関わる設定各種の説明です。
設定 | 効果 | 設定例(1行で書く) |
---|---|---|
backup | バックアップを有効にするかどうか。このスクリプトを使うためには有効にしなければならない。Vimの基本設定の1つ。 | :set backup |
backupdir | バックアップを保存するディレクトリ。Vimの基本設定の1つ。 | :set backupdir=/private/tmp |
savevers_types | バージョンの管理をするファイルの種類 | :let savevers_types = "*.java,*.xml" |
savevers_dirs | バージョン管理ファイルを保存するディレクトリ。 | :let savevers_dirs = "/private/tmp" |
versdiff_no_resize | 各バージョンとのdiffを表示する時に、ウィンドウサイズを変化させるかどうか。 | :let versdiff_no_resize=1 |
versdiff_max_cols | versdiff_no_resizeのオプションで、ウィンドウサイズの変化を許している時に、どれくらいの幅まで許容するか。 | :let versdiff_no_resize=120 |
使用方法
編集しているファイルを保存するたびに、ナンバー付きのヒストリーファイルが作られます。
前のバージョンと、現行のファイルを比べたい時は、「<F5>」キーを押してください。
「<F5>」キーを押すたびに、より前のバージョンとの比較が表示されます。
↓更に「<F5>」キー
「<F6>」キーは逆方向にヒストリーを見ていきます。
「<F8>」キーでdiffの画面から元の画面に戻ります。
編集中のファイルの履歴ファイルを消すには、
:Purge 0
全ての履歴ファイルを消去には、
:Purge -a 0
と、コマンドを実行してください。
注意事項など
このスクリプトを動作テストしたところ、
- CVSとの比較がうまく動作しない。
- Windowsでは、diffが機能しなかった。
- MacOSXで、長いファイル名のヒストリー管理ができない。
という問題点が見つかりました。