Есть ли NERDTree или другой плагин проекта для vim, который интегрируется с git, чтобы показать статус файлов?

Я играл с Aptana Studio некоторое время, прежде чем переходить на VIM, и единственное, что я действительно пропустил в Aptana Studio, - это то, как в окне просмотра проекта ваши имена файлов отображались в другом цвете в зависимости от их статуса в git (неизменный, измененный, но не поставленный, поставленный, без следа). Я знаю, что могу просто пойти на терминал и узнать, но иметь его прямо в моем редакторе, не набирая никаких команд, действительно полезно.

Кто-нибудь знает, существует ли плагин с этой функциональностью для vim? Является ли это плагином для NERDTree, заменой или чем-то еще?

Ответы

Ответ 1

Вы посмотрели fugitive.vim? Он не делает именно то, что вы ищете, с точки зрения цветового кодирования NERDTree на основе состояния git - я не знаю ни одного плагина Vim, который работает, хотя это было бы потрясающе. Он функционирует как довольно большая небольшая обертка git и позволяет вам быстро просматривать статус вашего проекта в разделенном окне с помощью :Gstatus. Не нужно идти на терминал. Вы даже можете добавить индикатор ветвления для текущего файла в строку состояния Vim.

Вы можете посмотреть первый в пятичастном скринкасте на fugitive.vim здесь.

Ответ 2

Для дальнейшего использования я создал вилку NERDTree, которая делает именно это, ее можно найти в https://github.com/SeySayux/NerdTreeGit.

Обратите внимание, что он все еще находится в разработке, поэтому он может сломаться. Он также содержит несколько странностей, для которых еще нет настраиваемых параметров.

ОБНОВЛЕНИЕ: связанный с проектом проект прекращен. Для (гораздо лучшей) альтернативы попробуйте следующее: https://github.com/Xuyuanp/nerdtree-git-plugin

Ответ 3

Я использую плагин git.vim, который предоставляет несколько функций git, таких как add/commit/diff/log и т.д. Поэтому изнутри vim я сопоставил <Leader>gs с GitStatus, который открывает новое окно просмотра и отображает статус:

enter image description here

Но моя любимая особенность этого плагина - это функция GitBranch(), с помощью которой вы можете добавить текущую ветку в свою строку состояния, так как я изложен в предыдущем ответе моей.

В одних и тех же строках должно быть возможно написать функцию, которая вызывает GitStatus, и выводит вывод и сообщает, есть ли в репозитории поэтапные изменения или неустановленные изменения, которые затем могут быть удобно добавлены в статусную линию.

Ответ 4

Я думаю, вам понравится https://github.com/Xuyuanp/git-nerdtree

Это мой разветвленный NERDTree.

Добавить git поддержку статуса для NERDTree. Вы можете указать статус файла git, быстро увидеть, какие файлы вы поставили, нестабилизировали и модифицировали или удалили в своем проекте без дополнительной работы.

Индикатор

  • ✭: Не отслеживается
  • ✹: Изменено в рабочем дереве
  • ✚: помещено в индекс (исключить статус переименования)
  • ➜: Переименовано
  • ═: Не работает
  • ✖: Deleted (Этот индикатор не может быть показан, так как NERDTree не отображает удаленные файлы. У меня нет префектной идеи для решения этой проблемы в настоящее время.)
  • ✗: Dirty (Только для каталога)
  • ✔︎: Очистить (только для каталога)

Отображение клавиш

Как и в GitGutter плагин по умолчанию.

  • ]c: переход к следующему индикатору
  • [c: индикатор перехода к предыдущему.