No momento, estou usando o fugitivo para gerenciar quase tudo relacionado ao git, mas não consigo encontrar um bom fluxo de trabalho para visualizar e alternar rapidamente entre as ramificações disponíveis.
Eu posso fazer :Git checkout <branch-name>, o problema é que ele preenche automaticamente os nomes de arquivos e as ramificações, e eu prefiro uma lista de ramificações.
Para culminar com as respostas, aqui estão as maneiras de conseguir isso:
Vanilla Terminal Vim
Pressione CTRL- Zno modo normal , você retornará ao shell e suspenderá o Vim. Depois de executar seu git checkout [branchname]tipo, o fgcomando retorne ao Vim suspenso, o que também forçará a atualização do Vim.
Vanilla GUI Vim
Algumas implementações do gvim terão :shellsuporte que abrirá um shell dentro do Vim usando um terminal burro. No entanto, pode ser mais fácil digitar:
:!git checkout [branchname]
Isso executará o comando sem precisar abrir um novo prompt de shell. (Esta opção também é utilizável no terminal Vim).
vim-fugitivo
O vim-fugitive é um plugin que permite usar o Git no Vim. O comando seria:
Não é fugitive, fugativee é isso que o OP já está usando.
Muru
1
Resposta incrível. vim-merginalé o que eu estava procurando.
Sergio D. Márquez
1
Eu gosto do ctrl-zporque ele carrega automaticamente os arquivos. Os colegas de trabalho gostam de ter uma janela tmux para a linha de comando e outra para o vim, mas quando fazem uma verificação geral ou mesclam quando retornam ao vim, precisam ir a cada arquivo aberto e a :e!cada vez. ( :bufdo e) que é uma dor para lembrar. Em vez disso, é mais fácil ctrl-zquando o fgVim executa o :eauto-magicamente.
Você deve abraçar seu terminal. Se você usar CTRL-Z, ele exibirá o Vim em segundo plano (ou qualquer processo que você esteja executando atualmente), e poderá executar os comandos que desejar, fgpara trazer o processo de volta ao primeiro plano:
A resposta fornecida pelo @ kubek2k é tão fenomenal. Essa solução é melhor do que eu poderia ter imaginado e implementado em menos linhas de código que eu poderia ter imaginado. Ele abriu a porta para me ajudar a entender o uso poderoso da personalização do 'fzf'.
Eu o modifiquei levemente para fornecer adicionalmente:
Utiliza o fugitivo para obter os árbitros em vez da linha de comando (melhor suporte para o Windows)
Listar tags junto com ramificações
Aqui está a pequena modificação:
function! s:gitCheckoutRef(ref)
execute('Git checkout ' . a:ref)
" call feedkeys("i")
endfunction
function! s:gitListRefs()
let l:refs = execute("Git for-each-ref --format='\\%(refname:short)'")
return split(l:refs,'\r\n*')[1:] "jump past the first line which is the git command
endfunction
command! -bang Gbranch call fzf#run({ 'source': s:gitListRefs(), 'sink': function('s:gitCheckoutRef'), 'dir':expand('%:p:h') })
fugitive
,fugative
e é isso que o OP já está usando.vim-merginal
é o que eu estava procurando.ctrl-z
porque ele carrega automaticamente os arquivos. Os colegas de trabalho gostam de ter uma janela tmux para a linha de comando e outra para o vim, mas quando fazem uma verificação geral ou mesclam quando retornam ao vim, precisam ir a cada arquivo aberto e a:e!
cada vez. (:bufdo e
) que é uma dor para lembrar. Em vez disso, é mais fácilctrl-z
quando ofg
Vim executa o:e
auto-magicamente.:checktime
é útil recarregar todos os buffers abertos.Use o plug - in vim-merginal ( extensão fugitiva ). Oferece TUI interativa para:
fonte
Você deve abraçar seu terminal. Se você usar CTRL-Z, ele exibirá o Vim em segundo plano (ou qualquer processo que você esteja executando atualmente), e poderá executar os comandos que desejar,
fg
para trazer o processo de volta ao primeiro plano:fonte
:shell
é o caminho a percorrer ou alternar!git checkout [branchname]
O fugitivo
Git checkout <branch>
tem uma desvantagem de não preencher automaticamente o nome do ramo. Usando o fzf.vim , criei este comando:espero que você ache útil
fonte
A resposta fornecida pelo @ kubek2k é tão fenomenal. Essa solução é melhor do que eu poderia ter imaginado e implementado em menos linhas de código que eu poderia ter imaginado. Ele abriu a porta para me ajudar a entender o uso poderoso da personalização do 'fzf'.
Eu o modifiquei levemente para fornecer adicionalmente:
Aqui está a pequena modificação:
fonte