Vimdiff: Как поместить все изменения внутри определенной функции из одного файла в другой? - PullRequest
8 голосов
/ 23 мая 2011

В Vimdiff я знаю, что могу использовать «do» или «dp» для перемещения изменений из одного файла в другой ... но это для индивидуальных изменений. Если мне нужно отменить все изменения в определенной области / выделении (скажем, отменить все изменения в определенной функции, но оставить остальные нетронутыми), есть ли способ сделать это за один раз?

1 Ответ

13 голосов
/ 23 мая 2011

Вы можете использовать визуальный выбор и команду ex :diffget / :diffput

Так, например, чтобы получить изменения только для текущих внутренних частей блока кода ({...})

Vi}:diffget<Enter>

К положить изменения для двух уровней, включая строки в скобках:

V2a}:diffput<Enter>

Обратите внимание, что, поскольку это бывшие команды, движенияпострочной.Конечно, вы можете использовать любой диапазон, поэтому вы можете повторить визуальный диапазон или использовать маркеры

:'a,'bdiffput

и т. Д.Используйте свое воображение, это vim:)

...