2012-08-29 38 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也可能會給你一些有用的信息。