2014年8月11日月曜日

MacにNeoBundleでBlockDiffをインストール

 作業をしていて、指定範囲やファイル同士の差分を比較したいことがあり、差分を確認できるエディタを探そうと思いましたが、念のため vim でもできないかを調べたところ、 BlockDiff というものがあったのでインストールしてみました。

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つ目の範囲を指定するコマンドを実行してから、2つ目の範囲を指定し、同様にコマンドを実行します。

1つ目の範囲を指定
:'<,'>:BlockDiff1
2つ目の範囲を指定
:'<,'>:BlockDiff2

比較対象を指定し終わると、下記のような画面で差分がわかるように表示されます。
※ vimの設定によって見え方は多少異なる可能性があります

今後、使う機会が結構あると思うので、何かと重宝しそうです。

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが 下記が今回のエラーで書き込みできない感じのメッセージが出ています。  $ brew install minikube Updating Homebrew... Error: The following ...