Wiem, że tryb różnicowy Vima ( vimdiff
) pozwala nam porównać zawartość dwóch (lub więcej) plików.
Ale czy można porównywać zawartość wielu plików w różnych katalogach, aby rekursywnie scalać dwa katalogi (np. DiffMerge i podobne narzędzia)?
filesystem
vimdiff
kenorb
źródło
źródło
Odpowiedzi:
Istnieje wtyczka DirDiff.vim ( GitHub ) do różnicowania i scalania dwóch katalogów rekurencyjnie.
Stosowanie:
Aby uzyskać więcej informacji / pomocy:
:help dirdiff
Zobacz zrzut ekranu:
Zobacz też:
Rekurencyjnie porównywać i łączyć katalogi? na blogu dedm
źródło
Używam skryptu opakowującego
python
do scalania plików (patrz poniżej). To jest uproszczona wersja tego, czego używam do scalenia moich~/.vim
katalogów i tym podobnych.Powinien działać w Pythonie 2 i 3; ale prawdopodobnie nie w bardzo starych wersjach Pythona dostarczanych z CentOS i innymi dystrybucjami.
Należy pamiętać, że niektóre kontrole (takie jak kontrola plików binarnych lub jeśli pliki są takie same) nie są bardzo szybkie (odczytuje cały plik); możesz je usunąć, jeśli chcesz.
Nie zgłasza także, czy a występuje tylko w jednym z katalogów ...
źródło
Od jakiegoś czasu chciałem tego samego. Najlepszym rozwiązaniem, jakie znalazłem, było użycie vdwrap , który działa niesamowicie dobrze. Wszystko robi to okład
git difftool --dir-diff
navimdiff
. Nie wymaga żadnych wtyczek vim.Wszystko, co musisz zrobić, to powiedzieć,
git difftool
aby użyćvdwrap
:Następnym razem, gdy użyjesz git difftool, otworzy Vima z osobnymi zakładkami Vima dla każdej pary plików.
Zastrzeżeniem jest to, że jest to skrypt Zsh. Przekształcenie go w skrypt bashowy powinno być dość proste, ale nie dałem rady.
źródło
Jeśli chcesz po prostu użyć vimdiff bez instalowania czegokolwiek dodatkowego, następujące polecenie otworzy kolejno wszystkie różne pliki, pozwalając ci spojrzeć na zmiany w vimdiff:
źródło
Jest na to lekkie rozwiązanie:
diff dir1 dir2 | vim -R -
w muszli.Dodanie foldów i porównanie obok siebie dla zmienionych plików.
źródło