icdiff - 於 Linux、Mac 單行 + 逐字比對 的工具程式

平常於 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 預覽圖
icdiff 預覽圖

icdiff 安裝方式

至於安裝方式部分,建議 git clone 下來再搭配 setup.py 使用,但是我想簡單點,方便自己掌握,所以用下述方式:

  1. curl -s https://raw.githubusercontent.com/jeffkaufman/icdiff/release-1.7.2/icdiff > icdiff
  2. chmod +x ./icdiff
  3. mv ./icdiff /usr/bin/ # 或者放到自己的 ~/bin/ 裡面

icdiff 設定

  1. vim .bashrc
    alias icdiff='icdiff --highlight'
  2. 於 Git 設定使用可以用下述方式:
    git difftool --extcmd icdiff
  3. git icdiff # 上述設定好後,就可以這樣子使用

更新 2014/01/13:感謝 凍仁翔 提供的 alias 寫法建議:(有 colordiff 時,才會取代 diff,否則就不取代)

if [ -f /usr/bin/colordiff ]; then
    alias diff="colordiff"
fi

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈icdiff - 於 Linux、Mac 單行 + 逐字比對 的工具程式〉中有 2 則留言

  1. 因為有您,讓在下有了「不同的」彩色的人生。以下是在下於 bashrc 裡的 alias 設定,相信可以比較好的相容性。:P


    # colordiff
    if [ -f /usr/bin/colordiff ]; then
    alias diff="colordiff"
    fi

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料