
Я хочу сравнить два каталога со схожей иерархией.
С помощью "Mx ediff-directories" в Emacs мне было предложено ввести регулярное выражение, чтобы ограничить имя файлов, которые я хочу сравнить. Например, я хочу сравнить файлы, имена которых заканчиваются на .c или .h. Затем я ввожу ".*.[ch]", Однако я обнаружил, что это оказывает влияние только на каталог верхнего уровня, но я хочу, чтобы регулярное выражение оказывало влияние на файлы, находящиеся во всех подкаталогах, независимо от их глубины.
Есть идеи?
решение1
Насколько я помню, edif-dirs не рекурсивен. Сам не пробовал, ноэтот пакеткажется, делает то, что вы хотите:
Пакет EdiffTrees представляет собой простой интерфейс для EdiffMode, позволяющий упростить сравнение двух похожих деревьев каталогов.
Я написал этот пакет, потому что мне часто нужно сравнивать две разные версии одного и того же дерева каталогов, а ediff-directories в этом случае не очень помогает. Особенно когда сравниваемые деревья каталогов глубокие и изменилось всего несколько файлов.
Дальнейшие инструкции см. в комментариях в файле.
В качестве альтернативы, если вы используете Unix-подобную ОС, вы можете перейти в режим eshell (Mx eshell) и выполнить:
diff -r dir1 dir2
На самом деле это своего рода хак, но, эй, вы все еще в emacs!