En este momento estoy usando fugitivo para administrar casi todo lo relacionado con git, pero no puedo encontrar un buen flujo de trabajo para visualizar y cambiar rápidamente entre las ramas disponibles.
Puedo hacerlo :Git checkout <branch-name>, el problema es que autocompleta tanto nombres de archivos como ramas, y preferiría una lista de ramas.
Para culminar las respuestas aquí están las formas de lograr esto:
Vanilla Terminal Vim
Presione CTRL- Zen modo normal lo regresará al shell y suspenderá Vim. Después de ejecutar su git checkout [branchname]tipo, el fgcomando para volver al Vim suspendido, que también obligará a Vim a actualizarse.
Vanilla GUI Vim
Algunas implementaciones de gvim tendrán :shellsoporte que abrirá un shell dentro de Vim usando una terminal tonta. Sin embargo, puede ser más fácil simplemente escribir:
:!git checkout [branchname]
Esto ejecutará el comando sin tener que abrir un nuevo símbolo del sistema. (Esta opción también se puede usar en el terminal Vim).
vim-fugitivo
vim-fugitive es un complemento que te permite usar Git desde Vim. El comando sería:
:Git checkout [branchname]
vim-merginal
vim-merginal es un complemento que utiliza vim-fugitive y proporciona una interfaz fácil de usar.
Es fugitive, no fugative, y eso es lo que OP ya está usando.
muru
1
Impresionante respuesta. vim-merginales lo que estaba buscando
Sergio D. Márquez
1
Me gusta ctrl-zporque carga automáticamente los archivos. A los compañeros de trabajo les gusta tener una ventana tmux para la línea de comando y otra para vim, pero cuando hacen un pago o se fusionan cuando regresan a vim, tienen que ir a cada archivo abierto y :e!cada vez. ( :bufdo e) que es un dolor para recordar. En cambio, es más fácil que ctrl-zcuando fgVim realiza el :eauto-mágico.
Deberías abrazar tu terminal. Si lo usa CTRL-Z, pondrá en segundo plano Vim (o cualquier proceso que esté ejecutando actualmente), luego puede ejecutar los comandos que desee, fgpara que el proceso vuelva a primer plano:
:shelles el camino a seguir o alt tabulación en su otro emulador de terminal favorito
65-e9-7e-17
2
Siempre me gusta!git checkout [branchname]
bronzehedwick
5
El fugitivo Git checkout <branch>tiene el inconveniente de que no completa automáticamente el nombre de la rama. Usando fzf.vim he creado este comando:
La respuesta proporcionada por @ kubek2k es tan fenomenal. Esa solución es mejor de lo que podría haber imaginado e implementado en menos líneas de código que podría haber imaginado. Abrió la puerta para ayudarme a comprender el poderoso uso de personalización de 'fzf'.
Lo he modificado ligeramente para proporcionar adicionalmente:
Hace uso de fugitivo para obtener las referencias en lugar de la línea de comando (mejor soporte para Windows)
Lista de etiquetas junto con ramas
Aquí está la ligera modificación:
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
, nofugative
, y eso es lo que OP ya está usando.vim-merginal
es lo que estaba buscandoctrl-z
porque carga automáticamente los archivos. A los compañeros de trabajo les gusta tener una ventana tmux para la línea de comando y otra para vim, pero cuando hacen un pago o se fusionan cuando regresan a vim, tienen que ir a cada archivo abierto y:e!
cada vez. (:bufdo e
) que es un dolor para recordar. En cambio, es más fácil quectrl-z
cuandofg
Vim realiza el:e
auto-mágico.:checktime
es útil para recargar todos los buffers abiertos.Use el complemento vim-merginal ( extensión fugitiva ). Ofrece TUI interactiva para:
fuente
Deberías abrazar tu terminal. Si lo usa CTRL-Z, pondrá en segundo plano Vim (o cualquier proceso que esté ejecutando actualmente), luego puede ejecutar los comandos que desee,
fg
para que el proceso vuelva a primer plano:fuente
:shell
es el camino a seguir o alt tabulación en su otro emulador de terminal favorito!git checkout [branchname]
El fugitivo
Git checkout <branch>
tiene el inconveniente de que no completa automáticamente el nombre de la rama. Usando fzf.vim he creado este comando:Esperamos que te sea útil
fuente
La respuesta proporcionada por @ kubek2k es tan fenomenal. Esa solución es mejor de lo que podría haber imaginado e implementado en menos líneas de código que podría haber imaginado. Abrió la puerta para ayudarme a comprender el poderoso uso de personalización de 'fzf'.
Lo he modificado ligeramente para proporcionar adicionalmente:
Aquí está la ligera modificación:
fuente