Edit: дубликат Q & А на StackOverflow есть ответы на этот вопрос (как указывало Tianxiang Сюно в комментариях).
Мой ответ ниже бесполезен, так как вы, очевидно, не можете получить желаемый результат таким образом. Я только не удаляю это, потому что информация, которую это действительно дает, несколько уместна, и может все еще доказать интересную информацию кому-то.
Лично я просто редактирую буфер слияния напрямую, но вы можете научить Emacs, что делать, если у вас есть стандартные требования.
+звонки ediff-combine-diffs
:
Объедините N-ю область различий буферов A и B и поместите комбинацию в C. N - префиксный аргумент. Если ноль, объедините регионы текущей разницы. Объединение производится в соответствии со спецификациями в переменных
ediff-combination-pattern
.
который:
Шаблон, который будет использоваться для объединения разностных областей в буферах A и B. Значение должно быть списком формы,
(STRING1 bufspec1 STRING2 bufspec2 STRING3 bufspec3 STRING4)
где bufspec является символом A, B или Ancestor. Например, если значение равно,
'(STRING1 A STRING2 Ancestor STRING3 B STRING4)
объединенный текст будет выглядеть так:
Дифференциал STRING1
из варианта А
Дифференц STRING2
из предка
Дифференциал STRING3
из варианта Б
STRING4
Обратите внимание, что когда вы думаете, что ничего не делает, он фактически комбинирует варианты, используя обычные маркеры конфликта. т.е. если вы уже выбрали A или B, то по умолчанию +это способ восстановить исходный конфликт.
diff3
может помочь .