NeoBundle を使ってインストールしたいので、まず .vimrc に github の記述を追加します。
ちなみに、今回はここからインストールします。
.vimrc を編集する
#vim .vimrc
NeoBundle 'vim-scripts/BlockDiff'
.vimrcにインストール元を記述したら、vimを開き直します。
インストール
#vim test.txt
Not installed bundles: ['BlockDiff']
Install bundles now?
(y)es, [N]o: y
[neobundle/install] Update started: (2014/08/11 20:05:36)
[neobundle/install] (1/1): |BlockDiff| git clone --recursive https://github.com/vim-scripts/BlockDiff.git "/Users/test/.vim/bundle/BlockDiff"
[neobundle/install] (1/1): |BlockDiff| Updated
[neobundle/install] |BlockDiff| -> 7c65c77fa1be750b3787d19b7ecd808a8277c4df
[neobundle/install] Installed/Updated bundles:
BlockDiff
[neobundle/install] Update done: (2014/08/11 20:05:39)
インストールが終わったので、早速使ってみようと vim を起動するとエラーが…
#vim test.txt
Error detected while processing /Users/test/.vim/bundle/BlockDiff/plugin/blockdiff.vim:
line 29:
E492: Not an editor command: ^M
line 31:
E15: Invalid expression: exists('g:loaded_blockdiff') || (v:version < 700)^M
line 94:
E488: Trailing characters
line 96:
E171: Missing :endif
どうやらインストールした BlockDiff の改行コードがやらかしているみたいなので、ファイルを直接いじって直していきます。
改行コードを変更する
#vim ~/.vim/bundle/BlockDiff/plugin/blockdiff.vim
:set fileformat=unix
:%s/^M/\\n/g
:%s/\\n/^M/g
ファイルを開いたら、コマンドモードで :set fileformat=unix を実行して、改行コードをUnix(^M)に変更します。
ただ、これだけだと改行がすべてなくなって、ぐちゃぐちゃな状態になるので、^Mを別の文字列(今回は\n)に変換してから、Macの改行コードに変更しています。
無事に改行コードの変換ができれば、起動時にエラーがでなくなって、問題なく使えるようになります。
使い方
1つ目の範囲を指定
:'<,'>:BlockDiff1
2つ目の範囲を指定
:'<,'>:BlockDiff2
比較対象を指定し終わると、下記のような画面で差分がわかるように表示されます。
※ vimの設定によって見え方は多少異なる可能性があります
今後、使う機会が結構あると思うので、何かと重宝しそうです。