我的OSX机器上有一个MacVim设置,因此默认的Vim
应用程序(即:/ usr / bin / vim)实际上是MacVim附带的Vim命令行版本的符号链接(即:/Applications/MacVim.app/MacOS/vim),因为它提供了与OSX10.6附带的库存Vim相比的一些关键优势。
我经常需要在一组文件之间准备差异,并将其导出为彩色的并排视图HTML文件。这通常通过以下方式实现:
vim -d file1 file2
(Within Vim): toHTML
这个问题是我必须手动检查HEAD修订版和两组文件的特定修订版,并对每对文件执行此操作。这非常耗时。
是否可以将svn diff
命令的结果传送到Vim,这样我就可以为整个目录(即:PWD)提供一个多彩的并排视图差异,而不仅仅是统一差异视图?
我找到了几个尝试实现此目的的Vim脚本和bash脚本,但有两个关键问题:
我希望明确地将vim -d
称为diff工具,而不是vimdiff
,因为MacVim应用程序似乎没有附带vimdiff
,所以我会使用启动应用程序时Vim的错误版本
我希望递归地针对整个目录生成多文件差异,而不是一次只生成一个或两个文件。
如果这不可行,我可能会创建一个或多或少实现这一点的bash脚本,但是如果有更有效的方法,我想避免将黑客/不可靠的脚本放在一起。
谢谢。
答案 0 :(得分:2)
vimdiff
仅是vim
的替代名称。二进制文件检查它是如何启动并相应地确定其行为。 (这就是gvim
和vim
没有不同文件的原因。)
在我的Mac OS和Linux机器上,我创建了一个~/bin
目录,然后在其中创建了从各种名称到我的macvim二进制文件的软链接。我把~/bin
放在我的路上很早。
我不在工作,我可以检查以确保,但我认为你可以在〜/ .subversion / config中将默认的SVN diff更改为指向vimdiff
。查找diff-cmd
部分。 https://stackoverflow.com/a/9604604/128421也可能会为您提供一些有用的信息。
答案 1 :(得分:1)
您可以尝试我的aurum插件,它附带:AuVimDiff
命令,该命令也可以通过vimdiff拆分查看多个标签中的所有更改:
AuVimDiff full HEAD 300
并在两个修订版之间获得差异,而无需手动签出:
AuVimDiff file file1 HEAD 300
(file file1
部分是可选的,如果省略,它将打开带有当前文件的diffsplit。所有修订也是可选的,因为subversion指定一个修订版正在将其与工作目录中的文件区分开,并且指定没有修订版就像{ {1}}:在BASE和工作目录之间。)
300这里只是一个修订示例。
答案 2 :(得分:0)
我已经在另一篇最近的帖子中完全解决了这个问题。为未来的读者发布一个回溯URL: