我希望能夠運行在vim中打開git diff的命令,併爲差異集中的每個文件分配一個選項卡。如何在vim中並排查看多個git差異
因此,如果例如我在我的工作樹中更改了文件foo.txt和bar.txt,並且運行了命令,我會看到vim以兩個選項卡打開。第一個選項卡將包含工作樹中的foo.txt和存儲庫中的foo.txt之間的並排diff,第二個選項卡包含bar.txt的並排diff。
任何人有任何想法?
我希望能夠運行在vim中打開git diff的命令,併爲差異集中的每個文件分配一個選項卡。如何在vim中並排查看多個git差異
因此,如果例如我在我的工作樹中更改了文件foo.txt和bar.txt,並且運行了命令,我會看到vim以兩個選項卡打開。第一個選項卡將包含工作樹中的foo.txt和存儲庫中的foo.txt之間的並排diff,第二個選項卡包含bar.txt的並排diff。
任何人有任何想法?
我會改變新vim
標籤做到這一點(雖然它不是一個單一的命令)
打開文件的方式:
VIM -p $(git的差異--name - 只)
對於每一個緩衝區得到DIFF到您當前的HEAD與vcscommand vim plugin
:VCSVimDiff
這給出了一個很好的觀點,但不是補丁形式。我想堅持git diff
。
編輯
像戴夫下面寫道:步驟1和2可以通過使用
vim -p $(git diff --name-only) -c "tabdo VCSVimDiff"
雖然它不會做你想要什麼,混帳difftool可能是你最好的選擇相結合。 'git difftool --tool = vimdiff --no-prompt HEAD'的開箱即用行爲是爲工作目錄中的每個文件按順序啓動vimdiff並進行更改。
改編Benjamin Bannier + Dave Kirby上面的逃犯用戶的回答。
,因爲我使用fugitive.vim,我適應了上面我最經常使用的情況下,看最後2個提交之間的差異:
vim -p $(git diff --name-only HEAD~1 HEAD) -c "tabdo :Gdiff HEAD~1"
加載所有變爲標籤是如此美好比順序通過git difftool
。
這個簡單的插件已經爲我工作:TabMultiDiff。它基本上爲傳遞給vim的每一對文件創建一個diff選項卡。該選項卡以每對中的第二個文件命名。
請注意,它不是plugin manager compatible,所以您需要通過將tab-multi-diff.vim
複製到.vim/plugin
來手動安裝它。
下面是比較兩對簡單文件(aaa/aab和aac/aad)的截圖。請注意,我也使用vim-scripts/diffchar.vim這就是個別字符突出顯示的原因。
您可以將它組合成一個命令,該命令可以放入shell腳本或函數中。 (未經測試的代碼): vim -p $(git diff --name-only)-c「tabdo VCSVimDiff」 – 2010-03-11 20:39:47
我嘗試了單行命令和2部分命令。它只會打開最後一個選項卡的差異。其他選項卡必須具有:VCSVimDiff調用它們。解決方案?..我很想讓所有的選項卡運行差異。 – Scoobie 2010-07-29 17:55:29