我是一个铁杆emacs
用户,但到目前为止一直用于kdiff3
与祖先的 3 路合并,例如在执行git merge
或rebase
. 我真的很喜欢这种方式,kdiff3
它不仅可以同时显示正在合并的所有四个版本的文本:
- 共同祖先(缓冲区A中
kdiff3
) - “我们的”又名“本地”(缓冲区B in
kdiff3
) - “他们的”又名“远程”(缓冲区C in
kdiff3
) - 合并结果或目标
而且还通过颜色突出显示A、B和C之间的差异。然而,与合并缓冲区的文本编辑kdiff3
相比,emacs
这并不令人惊讶,因为kdiff3
它不是一个成熟的文本编辑器。它也没有与优秀的magit
包装一起开箱即用。所以我试图ediff
在解决这个特定场景中的冲突时切换到使用(多年来我已经成功地ediff
用于其他用例)。
然而,尽管阅读了ediff
手册和EmacsWiki 页面,并在#emacs
IRC 上询问,我还是找不到同时显示所有 4 个缓冲区的方法。默认情况下它显示:
- “我们的”又名“本地”(标记为缓冲区A)
- “他们的”又名“远程”(标记为缓冲区B)
- 合并结果或目标(标记为缓冲区C)
按/
切换显示合并结果缓冲区 ( C ) 的窗口,使其显示祖先缓冲区,但您无法同时看到祖先和合并结果。(此外,祖先缓冲区中的差异以单一颜色突出显示,这并不能清楚地显示哪些位与其他两个可见缓冲区(A和B)不同,尽管根据这个线程,不幸的是,祖先差异细化似乎没有'尚未实施。)
有没有一种简单的方法可以配置ediff
为同时显示所有 4 个缓冲区?