是 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