Ниже представлены два плагина, которые позволяют из Vim работать с Git.Требования к плагину были простыми:
* Показывать активную ветку текущего файла
* Переключение между разными ветками, без выхода из Vim
* Кроссплатформенность
В итоге удалось найти два законченных плагина, которые удовлетворяют данным требованиям: [[http://github.com/vim-scripts/Git-Branch-Info git-branch-info.vim]] и [[http://github.com/motemen/git-vim git.vim]]
++ git-branch-info.vim
Этот плагин был сделан для показа информации о текущей ветке в статусной строке.
set laststatus=2 " Включение строки статуса внизу редактора
set statusline=%{GitBranchInfoString()}
В дополнение к информации о текущей ветке, он может показать список всех веток в текущем репозитории через пункт меню (только в Gvim) и позволяет проверить/извлечь определенную ветку.
[[IMG /opennews/pics_base/31583_1314255406.jpg]]
Одно замечание по этому плагину - он был разработан только для пользователей Linux и не будет работать в Windows в том виде в каком он есть.
++ git.vim
Git.vim более комплексный плагин, который позволяет пользователю производить больше действий с Git не покидая окружения Vim. Домашняя страница на GitHub http://github.com/motemen/git-vim/tree/master перечисляет все возможности, доступные благодоря этому плагину.
Функция вызываемая для установки статусной строки называется - GitBranch(). Итак, строки добавляемые в .vimrc должны быть такими:
set laststatus=2
set statusline=%{GitBranch()}
Но к сожалению, здесь есть ошибка в функции GitBranch(). Снова выручает GitHub, проект был форкнут и доступен здесь http://github.com/amjith/git-vim . Автору отправлен запрос с указанием ошибки.
Несколько других возможностей этого плагина продемонстрированы ниже. Этот плагин поставляется с файлами проверки синтаксиса, которые подсвечивают git-log, git-diff и git commit сообщения. Подсветку синтаксиса можно посмотреть на следующих снимках.
[[IMG /opennews/pics_base/31583_1314255696.jpg]]
":GitCommit" открывает отдельное окно для ввода информации о коммите, и коммитит текущий файл в репозиторий. Если файлы не добавлены в индекс, то плагин автоматически вызывает git commit с опицей -a для внесения всех измененных файлов в индекс и коммитит их в репозиторий.
[[IMG /opennews/pics_base/31583_1314255734.jpg]]
":GitDiff" открывает отдельное окно с выводом команды git diff по текущему файлу.
[[IMG /opennews/pics_base/31583_1314255757.jpg]]
":GitLog" показывает лог сообщение коммита по текущему файлу.
[[IMG /opennews/pics_base/31583_1314255790.jpg]]
":GitBlame" показывает изменения файла в виде списка однострочных записей, по одному имени пользователя на строку в вертикальном окне.
Это экспериментальная функция, для слияния конфликтующих файлов использует Vimdiff, ":GitVimDiffMerge" и другие команды git можно вызвать из Vim используя :Git.
URL: http://www.osnews.com/story/21556/Using_Git_with_Vim
Обсуждается: http://www.opennet.me/tips/info/2614.shtml