Я использую vimdiff для слияния git. Есть ли быстрый способ выбрать один файл для использования, прямо сейчас я просто выбираю все из одного буфера, заменяя $MERGE этим, а затем сохраняя. Наверное, я могу сделать макрос, но было интересно, есть ли лучший способ. Спасибо!
Использовать vimdiff для замены всего файла?
Ответ 1
Вы должны взглянуть на плагин Tim Pope Fugitive. Это действительно полезный плагин.
Когда вы запускаете Gdiff
в конфликтующем файле, открываются 3 файла - целевая, объединенная и рабочая копия. Вы переключитесь на файл, который хотите сохранить, и выполните Gwrite!
, чтобы сохранить этот файл.
Существует целый Vimcast, объясняющий, как разрешать конфликты слияния с этим плагином (и другие 5 vimcasts, объясняющие больше о Fugitive.vim).
Ответ 2
Несколько способов:
:%diffput
сделать "поместить" все изменения из текущего буфера в "другой" буфер. Это упрощает работу с трехсторонними различиями:
:%diffput OURS
Шаблон 'OURS' будет уникальным образом совпадать с именами, участвующими в текущем diff
Все вышеизложенное можно сделать в обратном порядке, заменив d o или :diffget
Ответ 3
- Сделайте
v
для VISUAL MODE в базе - Выберите весь файл (нажмите
Page Down
полностью) - Запишите
:
, затемdiffget <buffer number/name>
(: ls
перечислит все буферы, как правило, в vimdiff они справа налево 1-3 или 4, если 3-х канальный diff) - После этого просто
: wqa
и вы закончили
Ответ 4
Я думаю, что :%diffget LO
или :%diffget RE
- это то, что вам нужно.
Примечание: вам нужно запустить его в MERGED-части окон vim. Вы можете перемещать курсор вокруг окон, используя Ctrl+w;←/↑/→/↓