En ce moment, j'utilise fugitif pour gérer presque tout ce qui est lié à git, mais je ne trouve pas un bon flux de travail pour visualiser rapidement et basculer entre les branches disponibles.
Je peux le faire :Git checkout <branch-name>, le problème est qu'il complète automatiquement les noms de fichiers et les branches, et je préférerais une liste de branches.
Pour aboutir aux réponses, voici les moyens d'y parvenir:
Vanilla Terminal Vim
Appuyez sur CTRL- Zen mode normal vous ramènera dans le shell et suspendra Vim. Après avoir exécuté votre git checkout [branchname]type, la fgcommande pour revenir au Vim suspendu qui forcera également Vim à se rafraîchir.
Vanilla GUI Vim
Certaines implémentations de gvim auront un :shellsupport qui ouvrira un shell à l'intérieur de Vim en utilisant un terminal stupide. Cependant, il peut être plus facile de taper simplement:
:!git checkout [branchname]
Cela exécutera la commande sans avoir à ouvrir une nouvelle invite shell. (Cette option est également utilisable dans le terminal Vim).
vim-fugitive
vim-fugitive est un plugin qui vous permet d'utiliser Git depuis Vim. La commande serait:
Ce n'est fugitivepas le cas fugative, et c'est ce qu'OP utilise déjà.
muru
1
Réponse géniale. vim-merginalest ce que je cherchais.
Sergio D. Márquez
1
J'aime le ctrl-zcar il charge automatiquement les fichiers. Les collègues aiment avoir une fenêtre tmux pour la ligne de commande et une pour vim mais quand ils font un checkout ou fusionnent quand ils reviennent à vim ils doivent aller à chaque fichier ouvert et à :e!chaque fois. ( :bufdo e) qui est une douleur à retenir. Au lieu de cela, il est plus facile de le faire ctrl-zlorsque fgVim effectue l' :eauto-magie.
Vous devez embrasser votre terminal. Si vous utilisez CTRL-Z, il mettra en arrière-plan Vim (ou quel que soit le processus que vous exécutez actuellement), alors vous pouvez exécuter toutes les commandes que vous souhaitez, fgpour ramener le processus au premier plan:
:shellest le chemin à parcourir ou alt tabulation dans votre autre émulateur de terminal préféré
65-e9-7e-17
2
J'aime toujours!git checkout [branchname]
bronzehedwick
5
Le fugitif Git checkout <branch>a l'inconvénient de ne pas remplir automatiquement le nom de la branche. En utilisant fzf.vim, j'ai créé cette commande:
La réponse fournie par @ kubek2k est tellement phénoménale. Cette solution est meilleure que ce que j'aurais pu imaginer et implémentée en moins de lignes de code que j'aurais pu imaginer. Cela m'a ouvert la porte pour m'aider à comprendre la puissante utilisation de la personnalisation de «fzf».
Je l'ai légèrement modifié pour fournir en plus:
Utilise le fugitif pour obtenir les références au lieu de la ligne de commande, (meilleur support pour Windows)
Liste des balises avec des branches
Voici la légère modification:
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
pas le casfugative
, et c'est ce qu'OP utilise déjà.vim-merginal
est ce que je cherchais.ctrl-z
car il charge automatiquement les fichiers. Les collègues aiment avoir une fenêtre tmux pour la ligne de commande et une pour vim mais quand ils font un checkout ou fusionnent quand ils reviennent à vim ils doivent aller à chaque fichier ouvert et à:e!
chaque fois. (:bufdo e
) qui est une douleur à retenir. Au lieu de cela, il est plus facile de le fairectrl-z
lorsquefg
Vim effectue l':e
auto-magie.:checktime
est pratique pour recharger tous les tampons ouverts.Utilisez le plugin vim-merginal ( extension fugitive ). Il offre un TUI interactif pour:
la source
Vous devez embrasser votre terminal. Si vous utilisez CTRL-Z, il mettra en arrière-plan Vim (ou quel que soit le processus que vous exécutez actuellement), alors vous pouvez exécuter toutes les commandes que vous souhaitez,
fg
pour ramener le processus au premier plan:la source
:shell
est le chemin à parcourir ou alt tabulation dans votre autre émulateur de terminal préféré!git checkout [branchname]
Le fugitif
Git checkout <branch>
a l'inconvénient de ne pas remplir automatiquement le nom de la branche. En utilisant fzf.vim, j'ai créé cette commande:j'espère que vous le trouverez utile
la source
La réponse fournie par @ kubek2k est tellement phénoménale. Cette solution est meilleure que ce que j'aurais pu imaginer et implémentée en moins de lignes de code que j'aurais pu imaginer. Cela m'a ouvert la porte pour m'aider à comprendre la puissante utilisation de la personnalisation de «fzf».
Je l'ai légèrement modifié pour fournir en plus:
Voici la légère modification:
la source