【问题标题】:Emacs ediff-buffers copy *all* diffs from a to b (or vice versa)Emacs ediff-buffers 将 *all* 差异从 a 复制到 b(反之亦然)
【发布时间】:2018-03-23 14:56:20
【问题描述】:

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

【问题讨论】:

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

标签: emacs


【解决方案1】:

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

  1. j+1
  2. p(这意味着跳转到第一个diff之前的位置)
  3. F3(开始录制宏)
  4. n
  5. a(或 b,取决于您要使用的缓冲区的内容)
  6. F4(完整录制键盘宏)
  7. Ctrl+u(用于重复编号参数)
  8. 输入足够大的数字(大于差异总数)
  9. F4.

一切都搞定了!

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

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多