Emacs elisp中是否有向缓冲区应用修补程序的功能?

Emacs elisp中是否有向缓冲区应用修补程序的功能?,emacs,diff,elisp,patch,Emacs,Diff,Elisp,Patch,我正在为一个审查工具使用emacs模式,并希望使用ediff查看差异。。。问题是审查工具只会产生差异,而不是新旧文件。我希望将旧文件放在缓冲区中并应用diff,而不是复制该文件,将diff作为子进程调用并将其加载到单独的缓冲区中 这可以不用自己写就完成吗,有人知道吗?取决于您的工作流程,这可能适用,也可能不适用 试一试 从中可以执行以下命令: C-c C-a diff-apply-hunk C-c C-b diff-refine-hunk C-c C-c

我正在为一个审查工具使用emacs模式,并希望使用ediff查看差异。。。问题是审查工具只会产生差异,而不是新旧文件。我希望将旧文件放在缓冲区中并应用diff,而不是复制该文件,将diff作为子进程调用并将其加载到单独的缓冲区中


这可以不用自己写就完成吗,有人知道吗?

取决于您的工作流程,这可能适用,也可能不适用

试一试

从中可以执行以下命令:

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-e,输入要修补的文件名(例如
file.to.patch
)。然后,Emacs将为您设置包含原始文件和修补版本的两个缓冲区的ediff
file.to.patch.orig
file.to.patch
。然后,您可以像往常一样使用ediff。在流程的末尾,您将在所需的文件名中获得修补版本


查看。

ediff修补程序缓冲区可用于在ediff模式下修补缓冲区。

还有
M-x epatch
,它要求缓冲区包含修补程序(例如Gnus mail),然后要求文件/目录进行修补。非常方便

很好的提示,但是这将创建一个带有“\u patched”的补丁缓冲区。我想在那之后你必须手动复制内容。
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