Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

diff コマンド見辛かった

$
0
0

ある日突然「diffってみづらい!」と思ったので調べてdiff力アップ入門してみました。初歩的な内容です。

標準のまま

97a384b2e99d90139cbf07291055941a.png

colordiff入れる

8a8d5426e86715b7795fc924ff97ce4f.png

これだけでもずいぶん変わりました。とりあえずcolordiff採用。
diff にaliasを貼ります。

if [[ -x `which colordiff` ]]; then
  alias diff='colordiff'
fi

-u オプションをつける

diffに-uオプションをつけるとgitで見覚えるのある感じになりました。unified形式っていうらしいです。

diff -u file1 file2

851e836aa0b7f9d4806830ffb7f056c5.png

-y オプションをつける

diffに-yオプションをつけるとファイル内容を左右に並べて比較表示してくれました。
差分のある部分は|や>などで目印つきつつ、colordiffなら色がつきます。

ec155a9e29bcc963a0cf50a17e11b4d9.png

ちなみにこの出力をlessに渡すと盛大に文字化けしました。colordiff -y file1 file2 | less -Rとすればよいらしいです。

.colordiffrcで色設定も変更できます。

banner=no
color_patches=no

plain=off
newtext=green
oldtext=cyan
diffstuff=yellow
cvsstuff=white

-y --suppress-common-lines をつける

-yオプションにさらに--suppress-common-linesオプションをつけると変更のある行だけを表示してくれます。
思い切りばっさりと関係ない行を消してくれるのですが、こんどは情報が少なすぎる感が・・・。
これに行番号表示できないですかね。

b46b234278548202e42b4a9fd59039d4.png

--suppress-common-linesオプションを覚えるのは厳しいので
alias diff='diff -y --suppress-common-lines'とalias設定したらオプションの競合でdiff -uが使えなくなってしまったので
alias diify='diff -y --suppress-common-lines'とalias設定しました。

番外 vimdiffを使う

vimに標準でvimdiffというものがついてるのを知りませんでした。
見た目も使い勝手も良い感じだと思います。

% vimdiff file1 file2
# もしくは
% vim -d file1 file2

ed29bc92e73df3235cb04ab1369b3784.png

キー操作
dp左の差分を右へマージ
do右の差分を左へマージ
]-c次の差分へジャンプ
[-c前の差分へジャンプ

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>