О регулярных выражениях в emacs ediff-directories

О регулярных выражениях в emacs ediff-directories

Я хочу сравнить два каталога со схожей иерархией.

С помощью "Mx ediff-directories" в Emacs мне было предложено ввести регулярное выражение, чтобы ограничить имя файлов, которые я хочу сравнить. Например, я хочу сравнить файлы, имена которых заканчиваются на .c или .h. Затем я ввожу ".*.[ch]", Однако я обнаружил, что это оказывает влияние только на каталог верхнего уровня, но я хочу, чтобы регулярное выражение оказывало влияние на файлы, находящиеся во всех подкаталогах, независимо от их глубины.

Есть идеи?

решение1

Насколько я помню, edif-dirs не рекурсивен. Сам не пробовал, ноэтот пакеткажется, делает то, что вы хотите:

Пакет EdiffTrees представляет собой простой интерфейс для EdiffMode, позволяющий упростить сравнение двух похожих деревьев каталогов.

Я написал этот пакет, потому что мне часто нужно сравнивать две разные версии одного и того же дерева каталогов, а ediff-directories в этом случае не очень помогает. Особенно когда сравниваемые деревья каталогов глубокие и изменилось всего несколько файлов.

Дальнейшие инструкции см. в комментариях в файле.

В качестве альтернативы, если вы используете Unix-подобную ОС, вы можете перейти в режим eshell (Mx eshell) и выполнить:

diff -r dir1 dir2

На самом деле это своего рода хак, но, эй, вы все еще в emacs!

Связанный контент