Uma Lição de VIM #15.3: Plugins – Fugitive

(Essa é a parte que só faz sentido se você usa Git.)

O terceiro plugin que eu vou comentar é Fugitive, que adiciona comandos para gerenciar seu repositório Git dentro do VIM.

Para instalar, ou você baixa a versão do Github (no link acima) ou usa o Vundle:

Bundle ‘tpope/vim-fugitive’

(E, de novo: depois de adicionar essa linha no seu vimrc, você deve sair do VIM — ou, se não quiser fazer tudo isso, basta usar o comando acima em modo de comando — e usar :BundleInstall para instalar o plugin.)

A princípio, nada de diferente deve aparecer. Mas você agora pode usar qualquer comando do Git com :Git {comando}, como faria no shell.

Mas só adicionar um comando não é o que o Fugitive faz. Ele também adiciona outros comandos:

  • :Gwrite (ou :Gw): salva o arquivo atual e já adiciona no index para o próximo commit.
  • :Gblame: Faz um split da tela, mostrando do lado direito o fonte que já estava aberto e do lado esquerdo, o último commit (SHA1) e o autor do commit.
  • :Gread: Descarta as alterações locais e recupera o arquivo atual na sua última revisão dentro do repositório do Git (ou seja, revert).
  • :Gdiff: Mostra um diff da versão atual com a versão no repositório, com splits.
  • :Gcommit: Faz o commit dos arquivos que estão no index.
  • :Gstatus: Faz um “git status”, mas deixa que você altere os arquivos no index (usando “-” para adicionar ou remover o arquivo — leia o texto com atenção) e faça commit dos selecionados (usando “cc“) [Note que ambos os comandos devem ser usados em modo normal dentro do split aberto por :Gstatus.]

Existem outros, mas você vai usar principalmente estes. E cuide para que você esteja dentro de um repositório Git antes de tentar usar os comandos; se o VIM não estiver num diretório com um repositório válido, nenhum dos comandos do Fugitive ficarão disponíveis[1].

E, como última dica: Se você estiver usando o Airline (comentado no capítulo anterior), adicione

let g:airline_enable_branch = 1

… no seu vimrc e o branch atual será apresentando dentro do status do Airline, logo após o indicador de modo.

[1] Eu só preciso adimitir que não testei para ver o que acontece se você abrir o VIM fora de um repositório e depois usar :cd para mudar para um diretório que tem um repositório ou tentar abrir um arquivo que está dentro de um repositório para verificar se os comandos se tornam disponíveis.