Emacs ediff缓冲区将*所有*差异从a复制到b(反之亦然)

Emacs ediff缓冲区将*所有*差异从a复制到b(反之亦然),emacs,Emacs,当使用ediff缓冲区时是否有一种方法可以用一个键将所有差异从a复制到b(或从b复制到a),而不必用“a”或“b”键逐个检查每个差异?您可以使用键盘宏来执行此操作。下面是一个按键盘的示例 j+1 p(这意味着跳到第一个差异之前的位置) F3(开始录制宏) n a(或b,取决于要使用的缓冲区的内容) F4(完整录制键盘宏) Ctrl+u(用于重复编号参数) 输入足够大的数字(大于差异总数) F4 一切都完成了 如果保存键盘宏,则步骤1至步骤6只需执行一次。但我认为即使不保存宏,它也可以正常工作。此

当使用
ediff缓冲区时
是否有一种方法可以用一个键将所有差异从a复制到b(或从b复制到a),而不必用“a”或“b”键逐个检查每个差异?

您可以使用键盘宏来执行此操作。下面是一个按键盘的示例

  • j+1
  • p(这意味着跳到第一个差异之前的位置)
  • F3(开始录制宏)
  • n
  • a(或b,取决于要使用的缓冲区的内容)
  • F4(完整录制键盘宏)
  • Ctrl+u(用于重复编号参数)
  • 输入足够大的数字(大于差异总数)
  • F4
  • 一切都完成了


    如果保存键盘宏,则步骤1至步骤6只需执行一次。但我认为即使不保存宏,它也可以正常工作。此解决方案的问题在于性能。如果有数千个差异,可能需要相当长的时间才能完成操作。

    我不这么认为。这可能是一个愚蠢的问题,相当于用a覆盖b。但是,如果您手动完成一些差异,然后意识到所有其他的都只是从a到b的直接移动,那么可能会有一个用例。有点像打人!在搜索和替换中?是的,但我在ediff-copy-X-to-X功能中没有看到任何关于此的规定。瞧,您需要做一些elisp编程来添加这样一个功能(假设我当然没有忽略一些事情)。