煩惱許久的需求—— git difftool, open all diff files immediately, not in serial - Stack Overflow。具體狀況是:用 git-difftool 呼叫 vimdiff 看變更,會重複「2 files to edit ~ 自動進入 Vim 比較一個檔案 ~ 手動離開 Vim」這個流程,有 10 個(變更的)檔案就會重複 10 次,而且中間不知道怎麼停下來……
原文的解法我沒試成功,而是靠之前寫的 function,加上在 .zshrc 裡設定:
alias gitdiffall='vim -p `git diff --name-only` -c "tabdo GitDiff" -c "tabfirst"'
之後只要輸入指令 gitdiffall
即可。
有 2 個意見
所以有安裝 "vcscommand" 的人就
alias gitdiffall='vim -p `git diff --name-only` -c "tabdo VCSVimDiff" -c "tabfirst"'
感謝分享 :)
若不在git repo的第一層的話,會造成路徑錯,可能會失效.
因此我是這樣用,將
git diff --name-only
換成
git status | grep modified | awk '{print $3}'
酷,我現在裝 fugitive.vim 還不能用它的 GDiff 來做這件事,它好像要讀完 buffer 才會有效。
☂