2009-09-11 50 views
1

CVS差異有並排顯示修訂側,表示與常規補丁符號的diff像選項顯示輸出:如何獲得Vimdiff可以從CVS比較--side由端

import zlib          import zlib 
               > import time 
import traceback         import traceback 

import cElementTree as ElementTree     import cElementTree as ElementTree 

from util import infopage       from util import infopage 
               > from util.timeout import Timeout 

反正是有將該輸出傳遞給vimdiff,以便在兩個並排緩衝區中顯示這兩列以及vimdiff的所有diff-highlighting善良?

我知道像cvsvimdiff.vim之類的工具,但問題在於,它們一次只能處理一個文件,而cvs diff輸出列出多個文件。

+0

你能告訴CVS的哪個選項能做到嗎? – hcs42 2009-09-11 15:01:42

回答

1

一旦你在Vim緩衝區中有文本,你可以很容易地自己將它分成兩個緩衝區。看起來你的樣本輸入在50個字符處進行分割。

因此,使用<C-v>來突出顯示差異的一半,剪切它,粘貼到一個新的緩衝區,刪除尾隨空白和分隔符字符,然後你去。或者寫一個函數來做到這一點,這樣的事情(假定拆分始終處於50):

function! SplitCVSDiff() 
    exe "norm gg_\<C-v>51\<Bar>Gd:vnew\<CR>p" 
    silent! %s/\v\s+(\>)?$// 
endfunction 

可能需要進行更加強勁,我不熟悉的輸出CVS使用的確切風格。不應該很難。

0

我會寫一個腳本說:vimdiff_cvs file.cc 它做到這一點:本地file.cc的

  1. 商店差異,刪除,更新資料庫。現在將其複製爲〜/ .vimdiff/file.cc.repo。
  2. Restorefile.cc應用補丁
  3. 調用vimdiff file.cc〜/ .vimdiff/file.cc.repo。