Eksperymentuję z ediff-directories
, ale nie jestem pewien, czy używam go poprawnie.
Przeczytałem w dokumentacji, że gdy dostarczę dwa katalogi ediff-directories
, po naciśnięciu ==
Emacs porównuje je rekurencyjnie.
Jednak po naciśnięciu ==
dostaję tylko foldery ze =
znakami (co oznacza, że dwa foldery mają identyczną zawartość) na poziomie, na którym uruchamiam polecenie. Jeśli chcę zobaczyć, które foldery mają =
znaki na głębszych poziomach w hierarchii folderów, muszę ponownie uruchomić ==
polecenie na każdym poziomie.
Jak mogę powiedzieć emacsowi, aby rekurencyjnie podążał do liści, aby zobaczyć wszystkie różnice w directory difference buffer
(dostępne za pomocą polecenia klawiatury D
)?
Jeśli ktoś zna tutorial na temat korzystania ediff-directories
(inny niż oficjalna dokumentacja ), byłbym bardzo zainteresowany.
Ponadto, jeśli chcę wyjść z grupy sesji (porównanie folderów na jednym poziomie), ale mam otwarte sesje dla głębszych poziomów, jeśli q
nacisnę (wyjdę z tej grupy sesji), Emacs narzeka na komunikat:
Ta grupa sesji ma aktywne sesje --- nie może wyjść
Jak wyjść z grup sesji bez wychodzenia z podsekcji jedna po drugiej?
ztree-diff
może rekurencyjnie różnicować dwa katalogi. github.com/fourier/ztreeOdpowiedzi:
Użyłem
M-x dired-compare-directories
, ale są też EdiffTrees , które mogą ci lepiej służyć w opisywanej sytuacji.źródło
Potrzebowałem również tej funkcji i wymyśliłem następujące. Funkcja
ediff-directories-recursive
działa jak,ediff-directories
ale rekursuje w podkatalogach.Magia, która za tym stoi, tymczasowo zastępuje wbudowane
directory-files
przez siebie,directory-files-recursive
zanim zadzwoniediff-directories
.źródło
Dostępny jest
ztree
pakiet od Melpy, który obsługuje rekurencyjne porównywanie drzew katalogów:M-x ztree-diff
używaniediff
narzędzi GNU do porównywania odpowiednich plików.Jeśli używasz
use-package
następnie, aby zainstalować i skonfigurowaćztree
pakiet, dodaj do.emacs
:źródło