
我想比較兩個具有相似層次結構的目錄。
使用 Emacs 中的“Mx ediff-directories”,系統會提示我輸入正規表示式來限制我想要比較的檔案的名稱。例如,我想比較名稱以.c或.h結尾的檔案。然後我輸入“.*.[ch]”,但是我發現它只對頂級目錄生效,但我希望正則表達式對所有子目錄中的文件生效,無論深度如何這是。
任何想法?
答案1
我記得,edif-dirs 不是遞歸的。我自己沒試過,但是這個包似乎做你想做的事:
EdiffTrees 套件是 EdiffMode 的簡單前端,可以更簡單地比較兩個相似的目錄樹。
我編寫這個套件是因為我經常需要比較同一目錄樹的兩個不同版本,而 ediff-directories 在這種情況下並不是很有幫助。特別是當要比較的目錄樹很深並且只有少數文件發生更改時。
有關進一步說明,請參閱文件中的註釋。
或者,假設您使用的是類 UNIX 作業系統,您可以進入 eshell 模式 (Mx eshell),然後執行:
diff -r dir1 dir2
確實有點 hack,但是嘿,你還在 emacs 中!