Я использую vimdiff в качестве моего difftool с git.
Допустим, я изменил двенадцать файлов. Проблема в том, что иногда я запускаю git diff
и вокруг четвертого или пятого файла я вижу что-то, что я хочу отредактировать / изменить. Иногда мне нужно сделать еще несколько изменений вне этого. Проблема в том, что я не могу просто :qa
вернуться к взлому, потому что в vimdiff появилось еще шесть или семь различий. Это становится действительно утомительным для :qa
всех этих файлов, не смотря каждый раз, когда я хочу прервать git diff.
Есть ли способ установить vimdiff как difftool для git, чтобы все diff-файлы открывались в одном и том же экземпляре vim, например, в отдельных вкладках?
:tabe ~/.vimrc
после чего:bd
следует хорошая комбинация.Ответы:
Вы можете использовать плагины vim, опубликованные здесь . Тогда вам просто нужно установить difftool:
В качестве альтернативного приложения я бы предложил
meld
, который покажет вам измененные файлы - тогда вы можете выбрать только те файлы, которые вы хотите увидеть.Смотрите скриншот здесь для примера.
В дополнение к полезному комментарию Маркоса, в качестве третьего (альтернатива вручную), если вы хотите использовать,
vimdiff
я бы порекомендовал следующуюmeld
стратегию в сценарии (возможноpython
):git diff-files --name-status
иgit diff-index --name-status --cached HEAD
для идентификации файлов, которые необходимо изучить./tmp/
vimdiff
хотя, скорее всего, это невозможно в том смысле, в котором вы нуждаетесь - см. Ниже.Тем не менее, так как
vimdiff
сам по себе, похоже, не обрабатывает несколько вкладок diff изначально, я рекомендую одно из других моих предложений выше.источник
Очень простой способ - добавить эту опцию в ваш файл ~ / .gitconfig.
Таким образом, перед каждым сравнением файлов вам будет предложено пропустить файл, ответив «нет», или прервать сравнение файлов с помощью Ctrl + C.
Пример:
источник
Это то, что я использую. Требуется, чтобы вы использовали vim-fugitive
[alias] dt = "!f() { vim -p $(git diff --name-only) +\"tabdo Gdiff $@\" +tabfirst; }; f"
git dt
затем откроет каждую пару различий в отдельной вкладке. Затем:tabclose
закрыть одну пару или:qa
выйти.источник
источник