I've been using `!tig` forever. For some reason it was convenient enough for me to never turn it into a mapping. I feel like `tig` damaged me in the sense that using tig and then pressing `S` is my usual workflow, so I just can't get used to either fugitive or magit.
Thanks for these mappings
That said though, I actually prefer using the shell to stage and commit stuff. I think I'm way faster when I'm on the shell performing those actions than in either tig or fugitive.
Not sure when the last time you used fugitive but there was a major overhaul a couple of years ago. You can expand diffs in the commit window and stage parts of the files.
But obviously, stick with what you're comfortable with!
I also make heavy use of :Gedit for easily looking at files on other branches.
Eventually I moved to https://github.com/codeindulgence/vim-tig which does the same via `:Tig` and `:Tig!`.
I added those mappings to achieve something similar:
nnoremap <leader>gb :Tig! blame<cr>
nnoremap <leader>g0 :Tig! status<CR>
Thank you for inspiration! Tig FTW!
These days, I just use git in a tmux split rather than trying to force vim to show some arbitrary git UI. For a nice interactive git UI, I use tig[1]. Tig is essentially like fugitive/magic insofar as it allows me to interactively view a nice graphical log, stage/commit, traverse a file's historical blame, etc. It's a nicer UI compared to something like `gitk`.
I have these mappings in my `~/.vim/vimrc` for git/tig functionalities:
[1]: https://github.com/tpope/vim-fugitive[2]: https://github.com/jonas/tig