我使用MacVim作为编辑器,使用Atlassian SourceTree(v1.5.3)作为我的VCS前端。我安装了MacVim的命令行帮助程序脚本mvim
,并且mvimdiff
已正确符号链接。
我想在SourceTree中使用mvimdiff
作为外部差异工具,用于不同类型的VCS存储库(Git,Hg,SVN)。
当通过SourceTree“外部差异”文件/合并冲突时,两个差异窗口都是空的。
通过mvimdiff file1 file2
手动区分文件可以正常工作。
这些是我在SourceTree中的设置:http://i.stack.imgur.com/2eQZD.png
如何设置MacVim / gVim以使用SourceTree?
答案 0 :(得分:0)
您在diff配置中的设置几乎是正确的,您只需要进行一些调整以确保(例如)git可以找到二进制文件。在git文档中,它声明二进制文件(在您的情况下为mvimdiff
)必须在您的路径中或者给出其完整路径。
为您提供两个选项,要么确保mvimdiff
或/usr/local/bin
中存在/usr/bin
(或Mac上默认上的其他位置)路径),或者做我刚刚完成和测试的事情:将mvim
脚本放在$HOME
目录中的已知位置,并使用~
引用它(git的唯一扩展)支持)。
所以,我在我的Home文件夹中创建了一个名为.bin
的文件夹(带有一个前导点以将其隐藏在Finder中),然后将mvim脚本放在那里。然后在SourceTree中我将'Diff Command'设置为
~/.bin/mvim -d
我设置的'Arguments'与你的相似,但我把它们放在引号中来处理带有空格和其他特殊字符的文件,所以
"$LOCAL" "$REMOTE"
注意:我没有使用hg
或subversion对此进行测试,但由于svn
支持git-svn
,因此它也适用于该配置中的subversion。
答案 1 :(得分:0)
你必须传递选项-f告诉MacVim不要分叉一个新进程,但似乎SourceTree没有正确传递参数。
所以,要使用mvimdiff,只需将mvim复制为mvimdiff(而不是符号链接)并从
更改mvimdiff的最后一行但是3行exec "$binary" -g $opts ${1:+"$@"}
到
exec "$binary" -g -f $opts ${1:+"$@"}