使用 MacVim 做 svn diff

对于终端的 vim

  1. ~/.subversion/config

    [helpers] diff\ncmd = /usr/local/bin/svndiff

 

  1. 将下面的代码保存为 svndiff:

    #!/bin/sh DIFF="/usr/bin/vimdiff" LEFT=\n{6} RIGHT=\n{7} \nDIFF \nLEFT \nRIGHT
  2. 拷贝到 /usr/local/bin/svndiff 并设置权限:

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

对于 MacVim

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

#!/bin/bash LEFT=\n{6} RIGHT=\n{7} TMPLEFT="/tmp/\n{LEFT##\n/}.\n\n" TMPRIGHT="/tmp/\n{RIGHT##\n/}.\n\n" cp "\nLEFT" "\nTMPLEFT" cp "\nRIGHT" "\nTMPRIGHT" mvim \n\nservername SVNDIFF \n\nremote\ntab\nsilent +"vertical diffsplit \nTMPLEFT|wincmd w" "\nTMPRIGHT" sleep 0.1 SN=`mvim \n\nserverlist | grep "SVNDIFF"` until [ "\nSN" == "SVNDIFF" ]; do sleep 0.1 SN=`mvim \n\nserverlist | grep "SVNDIFF"` done rm \nf "\nTMPLEFT" "\nTMPRIGHT"

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

DIFF="/usr/bin/vimdiff"

为:

DIFF="gvim \nd"

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

See Also

\n svn diffの結果をMacVimで。 \n diffwrap.sh