Вимдифф странность

У меня странные проблемы с vimdiff, каждый раз я делаю что-то вроде этого:

git difftool HEAD~2 -- src/some-file.hs
  • во-первых - открывает два отдельных окна, одно - с диффом, а второе - с самим файлом. Почему и как мне это исправить? Мне не нужно второе окно

  • другая проблема заключается в том, что он никогда не делает ширину двух буферов одинаковой, разделитель сдвинут до упора вправо, и мне приходится вручную делать C-w+=, чтобы сделать их одинаковой ширины, как мне это исправить?

difftool установлен в .gitconfig как:

[diff]
    tool = gvimdiff

Также я понятия не имею, как правильно установить его в SourceTree. Я хочу использовать vimdiff как внешнее отличие/объединение


person iLemming    schedule 15.12.2014    source источник


Ответы (1)


Вы можете использовать vim как инструмент слияния git, но его внешний вид по умолчанию довольно беспорядочный, как вы заметили. Вы можете исправить это, обернув vim в пользовательский скрипт и используя его вместо этого — пример здесь http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool.

Однако, если все, что вам нужно, это просмотреть diff напрямую и отредактировать его, просто откройте файл в обычном режиме, то есть vim src/some-file.hs. git заменит файл своей версией с маркерами конфликта. Вы можете использовать что-то подобное, чтобы быстро найти конфликты https://github.com/rhysd/conflict-marker.vim, но я считаю, что достаточно просто набрать \>>>>. Для более сложных случаев я использую подключаемый модуль fugitive vim (см. следующий абзац).

Если вы действительно хотите использовать vim для работы с конфликтами git в отдельных файлах, я бы рекомендовал установить fugitive. Тогда можно.

:e src/some-file.hs
:Gdiff

И получить три буфера с исходным, левым и правым вариантом. Но :Gdiff также принимает аргументы версии, поэтому вы также можете сравнивать неконфликтующие файлы.

person Michael Anderson    schedule 16.12.2014