Есть ли график VIM Git?
До сих пор я пытаюсь понять, как использовать :Glog
в комбинации с :Gdiff
, чтобы создать хороший обзор, такой как плагин git-time-machine для редактора Atom:
Обзор существует из 3 окон
- Слева: текущий файл в рабочей копии.
- Справа: одна из предыдущих версий файла.
- Внизу: список быстрых исправлений, заполненный записями из истории.
Когда я выбираю коммит из списка быстрых исправлений, версия будет размещена в правом окне. Не забывать о разнице в освещении.
Кто-нибудь может мне помочь?:)
2 ответа
Я не знаю плагин, который точно так же, как это. Но есть GITV, который похож на GITK для VIM.
https://i.imgur.com/533cutD.jpg
Хотя в настоящее время он не поддерживается активно, он работает довольно хорошо, ИМХО.
Вот некоторые команды, которые вы можете использовать для имитации грубой версии описанного вами поведения.
- во-первых, откройте файл, который вас интересует
- бежать
:only
закрыть любые другие разделенные окна - бежать
:Glog
заполнить список быстрых исправлений всеми предыдущими ревизиями файла - обратите внимание, что вы сейчас смотрите на первый элемент в списке быстрых исправлений, который должен быть самой последней зафиксированной версией файла.
- проходите вперед и назад через список быстрых исправлений, используя
:cnext
а также:cprev
Пока что это основное использование. Теперь предположим, что вы обнаруживаете, что просматриваете предыдущую версию файла, который хотите сравнить с рабочей копией. Вот как вы можете это сделать:
- бежать
:vsplit
разделить рабочее пространство на два разделенных окна - затем
<C-w><C-h>
активировать левый сплит - затем беги
:Gedit
, который загружает версию рабочей копии файла, который вы просматриваете - затем
:windo diffthis
Boom! У вас есть diff с рабочей копией слева и предыдущей версией справа.
Теперь предположим, что вы хотите сохранить рабочую копию в левом разделении, одновременно просматривая другие предыдущие версии в правом разделении:
- использование
<C-w><C-l>
активировать правильный сплит - использование
:cprev
/:cnext
чтобы вернуться назад / вперед по списку быстрых исправлений (правое разделенное окно переместится из diffmode, но левое разделение останется в diffmode) - бежать
:diffthis
активировать различие между текущим буфером и рабочей копией
Когда вы закончите смотреть различия, запустите:
:diffoff!
отключить режим сравнения- а также
:only
свернуть ваше рабочее пространство в один разрез - по желанию, используйте
:Gedit
переключиться обратно на рабочую копию файла, с которым вы работаете
Вы можете автоматизировать некоторые из этих шагов с помощью Vimscript, а также можете добавить окно быстрого исправления в нижней части экрана, как вы предлагали. Это сделало бы аккуратный плагин! Лично я с удовольствием запускаю эти команды вручную. Этот рабочий процесс выглядит сложным, когда выписан, но он может стать второй натурой с практикой.