使用 MacVim 做 svn diff

对于终端的 vim

  1. ~/.subversion/config

    [helpers]
    diff-cmd = /usr/local/bin/svndiff
    1
    2
  2. 将下面的代码保存为 svndiff:

    #!/bin/sh
    
    DIFF="/usr/bin/vimdiff"
    LEFT=${6}
    RIGHT=${7}
    $DIFF $LEFT $RIGHT
    1
    2
    3
    4
    5
    6
  3. 拷贝到 /usr/local/bin/svndiff 并设置权限:

    sudo chmod +a /usr/local/bin/svndiff
    1

对于 MacVim

修改 /usr/local/bin/svndiff 内容如下:

#!/bin/bash

LEFT=${6}
RIGHT=${7}
TMPLEFT="/tmp/${LEFT##*/}.$$"
TMPRIGHT="/tmp/${RIGHT##*/}.$$"

cp "$LEFT" "$TMPLEFT"
cp "$RIGHT" "$TMPRIGHT"

mvim --servername SVNDIFF --remote-tab-silent +"vertical diffsplit $TMPLEFT|wincmd w" "$TMPRIGHT"
sleep 0.1

SN=`mvim --serverlist | grep "SVNDIFF"`
until [ "$SN" == "SVNDIFF" ]; do
  sleep 0.1
  SN=`mvim --serverlist | grep "SVNDIFF"`
done

rm -f "$TMPLEFT" "$TMPRIGHT"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

之前尝试过修改终端方案中的

DIFF="/usr/bin/vimdiff"
1

为:

DIFF="gvim -d"
1

未遂,右侧的代码会为空。

See Also

Help
[count]gg 跳转到第 [count] 行,默认第 1 行。
[count]G 跳转到第 [count] 行,默认最后一行。
[count]j 向下跳转 [count] 行,默认跳转一行。
[count]k 向上跳转 [count] 行,默认跳转一行。
/ 开始搜索。按 <Esc> 退出。
gh 跳转到首页。
gb 跳转到博客首页。
gw 跳转到 Wiki 首页。
gt 跳转到我的 Twitter Profile 页。
gp 跳转到我的 Github Profile 页。
? 打开帮助。按 <Esc> 退出。