2012-08-29 34 views
1

我在我的OSX机器上有一个MacVim安装程序,以便默认的Vim应用程序(即:/ usr/bin/vim)实际上是一个符号链接与MacVim一起提供的命令行版本的Vim(即:/Applications/MacVim.app/MacOS/vim),因为它提供了一些关于OSX10.6附带的Vim库存的重要优势。svn-diff在整个目录中的Vim并排视图

我周期性地需要在一组文件之间准备差异,并将其导出到一个丰富多彩的并排视图HTML文件中。这通常是通过实现:

vim -d file1 file2 
(Within Vim): toHTML 

的问题,这是我必须手动检查出HEAD的修订和两套文件的具体修改,并为每对文件做这个操作。这非常耗时。

是否有可能将svn diff命令的结果传送到Vim中,以便我可以为整个目录(即:PWD)制作丰富多彩的并排视图差异,而不仅仅是统一差异视图?

我已经发现了几个Vim脚本,并试图实现这一目标的bash脚本,但有两个关键问题:

  1. 我想明确地调用vim -d作为比较工具,而不是vimdiff,因为启动应用程序

  2. 我希望有递归对整个目录生成的多文件的diff时的MacVim应用程序未显示与vimdiff出货,所以我会使用议会的版本错误,而不是只有一个或一次两个文件。

如果这是不可行的,我可能会创建一个bash脚本,更多或更少的实现这一点,但我想避免放在一起被黑/不可靠的脚本,如果有一个更有效的手段做这件事。

谢谢。

回答

1

你可以试试我的aurum插件,它附带:AuVimDiff命令,它是也能够观看与Vimdiff可以拆分多个选项卡的所有变化:

AuVimDiff full HEAD 300 

,并得到两个版本之间的差异列表,您无需手动签他们:

AuVimDiff file file1 HEAD 300 

file file1部分是可选的,它会打开diffsplit与如果忽略所有的修订也是可选的,用于颠覆指定一个版本当前文件是二。在工作目录中用文件指定它,并指定没有修订就像svn diff:在BASE和工作目录之间。)

300这里只是一个示例修订。

2

vimdiff只是vim的替代名称。二进制检查以了解它是如何启动的并相应地确定其行为。 (这就是为什么gvimvim也没有不同的文件。)

在我的Mac OS和Linux机器上,我创建了~/bin目录,然后在其中创建了从各种名称到我的macvim二进制文件的软链接。我很早就在路上放了~/bin

我不在工作,我可以检查确认,但我认为你可以在〜/ .subversion/config中将默认SVN diff改为指向vimdiff。查找diff-cmd部分。 https://stackoverflow.com/a/9604604/128421也可能会给你一些有用的信息。