【发布时间】:2013-03-23 13:57:10
【问题描述】:
我是一个顽固的emacs 用户,但到目前为止一直使用kdiff3 与祖先进行三向合并,例如在执行git merge 或rebase 时。我真的很喜欢kdiff3 不仅可以同时显示正在合并的所有四个版本的文本的方式:
- 共同祖先(
kdiff3中的缓冲区 A) - “我们的”又名“本地”(
kdiff3中的缓冲区 B) - “他们的”又名“远程”(
kdiff3中的缓冲区 C) - 合并结果或目标
还通过颜色突出显示A、B和C之间的区别。然而,kdiff3 在合并缓冲区的文本编辑方面与emacs 相比毫不奇怪,因为kdiff3 不是一个成熟的文本编辑器。它也没有与优秀的magit 包集成开箱即用。因此,当解决这个特定场景中的冲突时,我尝试切换到使用ediff(多年来,我已经成功地将ediff用于其他用例) .
然而,尽管阅读了ediff manual 和EmacsWiki page,并在#emacs IRC 上询问,我还是找不到同时显示所有4 个缓冲区的方法。默认显示:
- “我们的”又名“本地”(标记为缓冲区 A)
- “他们的”又名“远程”(标记为缓冲区 B)
- 合并结果或目标(标记为缓冲区C)
按/ 会切换显示合并结果缓冲区的窗口(C),以便显示祖先缓冲区,但您无法同时看到祖先和合并结果。 (此外,祖先缓冲区中的差异以单一颜色突出显示,这并不能清楚地显示哪些位与其他两个可见缓冲区(A 和 B)不同,虽然根据this thread,不幸的是,祖先差异细化似乎还没有实现。)
有没有一种简单的方法可以将ediff 配置为同时显示所有 4 个缓冲区?
【问题讨论】:
标签: emacs merge diff kdiff3 emacs-ediff