2010年10月21日 星期四

DirDiff -- compare two folders

是 vim plugin. http://www.vim.org/scripts/script.php?script_id=102

follow instruction , download 到 ~/.vim/plugin/ (如果沒有這個 folder 就自己 create)。

使用的方法是,進入 vi 後,在 command 下:
:Diff dir1 dir2
比較dir1, dir2

vi 會開啟三個 分割視窗,利用
Ctrl-W W
切換游標到各個ˊWindow

在上面的比較視窗中,可以用 vi 的 diff command 操作:
]c 下一個差異

[c 上一個差異

最下面的 Window 顯示的是 目錄比較的結果,移動游標後按 enter 可以開啟比較結果。

有關copy 的部份我:
這一個block的diff update 到 對面:
dp
用對面的來update我的這一個 block diff:
do
但是要注意,如果要undo,就要先用
Ctrl-W W
切換到 FileB之後,在用
u
undo




git 要用 vimdiff 來看 git diff 的結果,可以用:
git difftool
然後就會一個一個的把 diff 的檔用 vimdiff 打開比較。

... 如果你的 git 不是用 vimdiff 來開,可以修改 .gitconfig,加上
[diff]
tool = vimdiff





vimdiff 在顯示的時候,會把大量相同的部份fold起來(用++ 代替).
要打開的話,可以用
zR

要再折回去用:
za
如果 svn diff 要像 git diff 一樣,用 vim 來看。會比較麻煩。
ref:這一篇
大概就是要寫一個 script,讓 vim 吃 svn 的參數。

~/bin/diffwrap.sh: #!/bin/sh # Configure your favorite diff program here. DIFF="/usr/bin/vimdiff" # Subversion provides the paths we need as the sixth and seventh # parameters. LEFT=${6} RIGHT=${7} # Call the diff command (change the following line to make sense for # your merge program). $DIFF $LEFT $RIGHT # Return an errorcode of 0 if no differences were detected, 1 if some were. # Any other errorcode will be treated as fatal. 然後修改 ~/.subversion/config [helpers] diff-cmd = /home/matt/bin/diffwrap.sh

沒有留言:

張貼留言