STERFIELD

2016/12/10

差分を簡単に抽出

差分を簡単に抽出

目的

開発を行う上で認識を常に要求される「差分」を扱いやすくします。

今回もエディタをvim前提で記載します。

まずは普通の差分

vimで差分を取りたい2つのファイルのうち一つを開きます。

次に開いたhoge.htmlに対して差分を取りたいファイルを以下のコマンドで開きます

最初のコロンはvimでコマンドを実行する際のおまじない。
verticalは差分を左右で表示する宣言。これをしないと上下にデフォルトで開きます。
diffsplit これが差分を出すためのコマンド。

これを実行した結果が以下のスクリーンショット.
スクリーンショット 2016-12-09 15.47.05

後から開いた方が左側に表示されます。
fuga.html ではインデント整形と一部文言の修正を行いました。

インデントした部分はスペースの数も差分として出ちゃっています。
スペースや改行の差分を無視したい時は以下のコマンドを実行

icase: 大文字小文字の判断無視
filler: 2つのテキストを自動スクロール
iwhite: スペースの数の差分を無視

これを実行すると以下のようになります。
スクリーンショット 2016-12-09 15.52.46

左右を入れ替えたい時はCtrl+w xで。
便利なショートカットは以下参照。

Ctrl+w w : アクティブなテキストの移動
Ctrl+w x : テキスト表示位置(左右・上下)の入れ替え
[c : 今のカーソル位置から次の差分へジャンプ
]c : 今のカーソル位置から前の差分へジャンプ
dp : アクティブなテキストからもう片方へ差分を反映させる
do : もう片方のテキストからアクティブなテキストへ差分を反映させる

メインとなる機能は “dp”, “do” です。
欲しい差分だけを片方に反映させるのがポイントです。

差分が命のgitでも

gitの差分もvim上で編集しやすく
“vim-fugitive”
と言うプラグインを使います

vimの設定ファイル ~/.vimrc に以下の行を追加後、vimを再起動するだけ。

前述のdiffsplitの代わりに “Gdiff” を使用するだけの違いです。
必要な修正以外をしてしまった時も巻き戻しが容易。

差分がdiffsplitのごとく表示される
スクリーンショット 2016-12-09 16.32.08

ブランチ間での同ファイル差分も簡単に確認出来ます。

おまけ

vim-fugitiveが挙がったので便利な機能の紹介追加。

これで更新履歴を「いつ」「だれが」「どこを」修正したか解ります。

差分ライフを楽しんでください。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい