平常於 Linux 使用 diff,我都已經直接 alias 到 colordiff (colordiff - tool to colorize 'diff' output)。
- 註1: /usr/bin/diff -u 的參數,在 colordiff 都是通用的,所以我是於 .bashrc 做下述設定:
alias diff='colordiff -u'
- 註2: 於此篇(把 icdiff 包成 PPA) DK 寫到都使用 diff -urN 參數,於是就將上述 alias 改成下述:
alias diff='colordiff -urN'
平常除了 diff 外,程式要合併時,我大多都會直接使用 vimdiff 來處理(於 git diff 合併我也用 vimdiff),vimdiff 已經把 icdiff 的事情都做好了,這邊簡述一下:
- vimdiff 於不同部分標註:每行不同的顏色區分,每個字不同的顏色區分。
- 相同部分自動摺疊起來,不需要再去觀看。
既然 vimdiff 都做到了,為何還要使用 icdiff? 主要是檔案大小,使用時機不同。(想想 vim 開啟一個大檔案加上 highlight 會花多久時間?)
icdiff - 於 Linux、Mac 單行 + 逐字比對 的工具程式
icdiff 類同 diff,除了每行比對外,額外會把每個字的不同處標注出來,方便觀看。
icdiff 官方提供的 screenshot:
icdiff 安裝方式
至於安裝方式部分,建議 git clone 下來再搭配 setup.py 使用,但是我想簡單點,方便自己掌握,所以用下述方式:
- curl -s https://raw.githubusercontent.com/jeffkaufman/icdiff/release-1.7.2/icdiff > icdiff
- chmod +x ./icdiff
- mv ./icdiff /usr/bin/ # 或者放到自己的 ~/bin/ 裡面
icdiff 設定
- vim .bashrc
alias icdiff='icdiff --highlight'
- 於 Git 設定使用可以用下述方式:
git difftool --extcmd icdiff
- git icdiff # 上述設定好後,就可以這樣子使用
更新 2014/01/13:感謝 凍仁翔 提供的 alias 寫法建議:(有 colordiff 時,才會取代 diff,否則就不取代)
if [ -f /usr/bin/colordiff ]; then alias diff="colordiff" fi