如何在emacs中实现一项功能,以显示在两个缓冲区中打开的两个文件之间的内容差异? 有点像使用mercurial时的revdiff。
答案 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 ^ R
或C-c ^ =
查看差异。
请注意,如果两个集团几乎是连续的,这种情况会更好。
答案 2 :(得分:1)
M-x diff
就是这么做的。
有关详情,请参阅文档:http://www.gnu.org/software/emacs/manual/html_node/emacs/Comparing-Files.html
答案 3 :(得分:1)
我还发现,compare-windows通过打开缓冲区的差异来完成一项非常出色的工作。