Я экспериментирую ediff-directories
, но я не уверен, что использую это правильно.
Я прочитал в документации, что, когда я нажимаю две директории ediff-directories
, при нажатии ==
Emacs сравнивает их рекурсивно.
Однако, если я нажимаю, ==
я получаю только папки со =
знаками (что означает, что две папки имеют идентичное содержимое) на уровне, где я запускаю команду. Если я хочу увидеть, какие папки имеют =
знаки на более глубоких уровнях в иерархии папок, мне нужно повторно запустить ==
команду на каждом уровне.
Как я могу сказать emacs рекурсивно пройти весь путь до листьев, чтобы я мог видеть все различия в directory difference buffer
(доступны через команду клавиатуры D
)?
Если кто-нибудь знает учебник по использованию ediff-directories
(кроме официальной документации ), я был бы очень заинтересован.
Кроме того, если я хочу выйти из группы сеансов (сравнение папок на одном уровне), но у меня есть сеансы, открытые для более глубоких уровней, если я q
нажимаю (выход из этой группы сеансов), Emacs жалуется на сообщение:
Эта группа сессий имеет активные сеансы --- не может выйти
Как я могу выйти из сессионных групп, не выходя из под-сессий одна за другой?
ztree-diff
может различать две директории рекурсивно. github.com/fourier/ztreeОтветы:
Я использовал
M-x dired-compare-directories
, но есть и EdiffTrees , которые могут помочь вам лучше в ситуации, которую вы описываете.источник
Я также нуждался в этой функции и придумал следующее. Функция
ediff-directories-recursive
работает аналогично,ediff-directories
но возвращается в подкаталоги.Волшебство позади этого временно заменяет встроенный
directory-files
на самодельныйdirectory-files-recursive
перед вызовомediff-directories
.источник
В
ztree
Melpa доступен пакет, поддерживающий рекурсивное сравнение дерева каталогов:M-x ztree-diff
использованиеdiff
утилит GNU для сравнения соответствующих файлов.Если вы используете
use-package
затем для установки и настройкиztree
пакета, добавьте в.emacs
:источник