Эквивалент Vimdiff для Select Lines

При использовании в качестве инструмента слияния для Git, что эквивалент в vimdiff для kdiff3 «Выбрать строки из A/B/C»? Есть ли для этого ярлык, например Ctrl+1/2/3 в kdiff3?

введите здесь описание изображения


person sashoalm    schedule 25.04.2017    source источник


Ответы (1)


Судя по разделу Справочного руководства Vim для vimdiff, встроенных команды с полной функциональностью Ctrl+1/2/3 в vimdiff. Под «полной функциональностью» я подразумеваю то, что в kdiff3 вы могли выполнять команды Ctrl+2, Ctrl+3, Ctrl+1 в таком порядке, и в объединенной версии вы получите строки различий из буфера B, за которыми следуют строки из буфера C, за которыми следуют строки из буфера А.

Однако есть команда для выполнения более ограниченной версии функциональности, доступной в kdiff3. Если вы хотите использовать только строки из одного из входных файлов, тогда доступна команда [count]do, где [count] обычно равно 1, 2 или 3 в зависимости от того, из какого буфера vim вы хотите извлечь строки. (do означает "получение различий".)

Например, если у вас возникла следующая ситуация слияния: vimdiff слияние ситуации затем вы можете переместить курсор на конфликт слияния в нижнем буфере и ввести 1d o если вы хотите "обезьяна", 2do если вы хотите "свинья", или 3do, если вы хотите "кит".

Если вам нужно захватить строки из нескольких буферов при слиянии с vimdiff, я бы рекомендовал установить для параметра конфигурации Git merge.conflictstyle значение diff3 (git config merge.conflictstyle diff3), чтобы общий предок отображался в объединенном буфере файла, как показано на скриншоте выше. Затем просто переместите строки по своему вкусу с помощью команд vim и удалите обозначения различий и все неиспользуемые строки.

person user0118999881999119725 3    schedule 04.05.2017