Есть ли график VIM Git?

До сих пор я пытаюсь понять, как использовать :Glog в комбинации с :Gdiff, чтобы создать хороший обзор, такой как плагин git-time-machine для редактора Atom:

Обзор существует из 3 окон

  1. Слева: текущий файл в рабочей копии.
  2. Справа: одна из предыдущих версий файла.
  3. Внизу: список быстрых исправлений, заполненный записями из истории.

Когда я выбираю коммит из списка быстрых исправлений, версия будет размещена в правом окне. Не забывать о разнице в освещении.

Кто-нибудь может мне помочь?:)

2 ответа

Решение

Я не знаю плагин, который точно так же, как это. Но есть GITV, который похож на GITK для VIM.

https://i.imgur.com/533cutD.jpg

Хотя в настоящее время он не поддерживается активно, он работает довольно хорошо, ИМХО.

https://i.imgur.com/gm2mc0f.jpg

https://i.imgur.com/4YrL9SW.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, а также можете добавить окно быстрого исправления в нижней части экрана, как вы предлагали. Это сделало бы аккуратный плагин! Лично я с удовольствием запускаю эти команды вручную. Этот рабочий процесс выглядит сложным, когда выписан, но он может стать второй натурой с практикой.

Другие вопросы по тегам