blockdiff.vim : 選択した2つの範囲だけを対象にした差分比較
blockdiff.vimスクリプトは、選択した2ヶ所のブロックのテキストの比較機能を提供するスクリプトです。 比較対象とする2ヶ所のブロックは、同じファイル内にあっても、別のファイルにあっても構いません。 同じファイル内の似たようなコードを比較するのにも役立ちますし、 選択した範囲のテキストだけで比較を行いたい場合にも役に立つでしょう。 (Windows)
概要
BlockDiff : Difference between two blocks (functions etc...)
http://www.vim.org/scripts/script.php?script_id=2048
blockdiff.vimスクリプトは、選択した2ヶ所のブロックのテキストの比較機能を提供するスクリプトです。
比較対象とする2ヶ所のブロックは、同じファイル内にあっても、別のファイルにあっても構いません。
同じファイル内の似たようなコードを比較するのにも役立ちますし、
選択した範囲のテキストだけで比較を行いたい場合にも役に立つでしょう。
インストール方法
スクリプト をダウンロードしたら、
そのスクリプトをpluginディレクトリにコピーしてください。
ファイル | URL |
---|---|
blockdiff.vim | http://www.vim.org/scripts/script.php?script_id=2048 |
Note
このスクリプトを使用するには「diff」コマンドが必要です。
Windows環境の場合は「diff」コマンドを入手する必要があります。
参考:Windows環境のvimエディタでdiff機能を使うには
使用方法
操作手順
このスクリプトを使用するには、次の手順で操作を行います。
比較対象のブロックを、メニューか、コマンドで指定します。
- 比較対象とするブロックを1ヶ所選択する。
- もう1ヶ所のブロックを選択する。
- 2ヶ所目のブロックを選択すると、選択エリアの比較が実行される。
メニューでの操作
メニューで操作する場合は、
比較対象のブロックをビジュアルモードで選択後、
メニューから、1つ目のブロックか、2つ目のブロックかを指定します。
2つ目のブロックを指定した時に、差分比較が実行されます。
「Tools」→「BlockDiff」→「This is Block 1」 「Tools」→「BlockDiff」→「This is Block 2, start diff」
↓(2つめの場所を選択すると、比較処理が実行される。)
コマンドでの操作
コマンドで操作する場合も、メニューで操作する場合とさほど操作は変わりません。
比較対象の範囲をビジュアルモードか、コマンドで選択後、
(メニューで選択する代わりに)次のコマンドで、
1つ目のブロックか、2つ目のブロックかを指定します。
2つ目のブロックを指定した時に、差分比較が実行されます。
" 1つ目のブロックを選択 :'<,'>:BlockDiff1 " 2つ目のブロックを選択 :'<,'>:BlockDiff2
↓(2つめの場所を指定すると、比較の結果が表示される)
Note
コマンドでの操作の場合は、ビジュアルモードで範囲を選択する以外に、
コマンドで比較範囲を指定することもできます。
" 1つ目のブロックを選択(コマンド例) :3,15:BlockDiff1 " 2つ目のブロックを選択(コマンド例) :49,88:BlockDiff2
注意事項など
このスクリプトは、どのファイルの、どの場所を、比較対象のブロックとして指定したかは記録しません。
また、比較の実行結果のテキストに対し編集を加えても、選択元のテキストを与えることもできません。
ですから、ブロックの比較を実行した後、比較元のテキストを編集するつもりであるなら、
- その場所を記憶しておくか、
- vimエディタのマークの機能を使用して位置を記録して、
元の場所に移動すると良いでしょう。
Note
vimエディタのマーク機能は、簡単に説明すると、
ノーマルモードで「mA」と実行しておくと、
その記録した位置に、ノーマルモードの「'A」コマンドで移動できるという機能です。
Aの代わりに、a~z、A~Zの他のアルファベットも使用できます。