我正在使用emacs模式查看工具,並且想要使用ediff查看差異...問題在於審閱工具只產生差異而不是新舊文件。我想將舊文件放入緩衝區並應用diff而不是複製文件,調用diff作爲子進程並將其加載到單獨的緩衝區中。elisp中是否有一個將補丁應用於緩衝區的函數?
這樣做可以不用自己寫,有人知道嗎?
我正在使用emacs模式查看工具,並且想要使用ediff查看差異...問題在於審閱工具只產生差異而不是新舊文件。我想將舊文件放入緩衝區並應用diff而不是複製文件,調用diff作爲子進程並將其加載到單獨的緩衝區中。elisp中是否有一個將補丁應用於緩衝區的函數?
這樣做可以不用自己寫,有人知道嗎?
ediff-補丁緩衝器可以ediff模式被用來補丁緩衝器
取決於您的工作流程,這可能適用或不適用。
嘗試
M-x diff-mode
從中你可以做這樣的命令:
C-c C-a diff-apply-hunk
C-c C-b diff-refine-hunk
C-c C-c diff-goto-source
C-c C-d diff-unified->context
C-c C-e diff-ediff-patch
對我來說,最直觀的流程是'diff-ediff-patch
。
當您在查看修補程序時,運行C-c C-e,輸入要修補的文件名(例如file.to.patch
)。然後Emacs將爲您設置兩個包含原始文件和修補版本的緩衝區file.to.patch.orig
和file.to.patch
。然後你會經常使用Ediff。在流程結束時,您需要使用所需文件名的修補版本。
還有M-x epatch
,對於含有補丁(Gnus的郵件例如)緩衝劑詢問,然後詢問要修補的文件/目錄。非常便利。
不錯的提示,但是這會創建一個修補緩衝區,並在其名稱後面加上「_patched」。我認爲你必須在那之後手動複製內容。 – Arne 2013-08-06 11:46:32