显示两个文件之间的行差异

时间:2013-08-05 22:59:55

标签: emacs elisp

如何在emacs中实现一项功能,以显示在两个缓冲区中打开的两个文件之间的内容差异? 有点像使用mercurial时的revdiff。

4 个答案:

答案 0 :(得分:10)

Emacs有ediff,可以区分两个文件。要使用它,只需执行M-x ediff,并指定要扩散的两个文件。

答案 1 :(得分:3)

顺便说一句,如果你想看到同一个缓冲区中两个文本块之间的差异,可以按如下方式进行: - 确保加载了smerge-mode(例如M-x load-library RET smerge-mode RET)。 - 转到第一个集团的开头,C-SPC - 走到第二个集团的开头,C-SPC - 转到第二集团的末尾,M-x smerge-makeup-conflict RET - 然后您可以使用C-c ^ RC-c ^ =查看差异。 请注意,如果两个集团几乎是连续的,这种情况会更好。

答案 2 :(得分:1)

M-x diff就是这么做的。

有关详情,请参阅文档:http://www.gnu.org/software/emacs/manual/html_node/emacs/Comparing-Files.html

答案 3 :(得分:1)

我还发现,compare-windows通过打开缓冲区的差异来完成一项非常出色的工作。