I've been using vim with the excellent fugitive plugin for a few months now. But today, for reasons that I can't work out, the :Gstatus
command has changed behaviour.
It still opens up a "git status"-like screen, which does respond to "R" to refresh it. But when I go to a "modified: ..." listing and hit "D", instead of getting two split windows showing the diff, I just get the "git diff" output. Also, hitting "-" on the modified file does not stage it at all.
It's like all the power has vanished from this mode ?
I also suspect the "git status"-like screen it's opening is in fact the exact output from git status. It's also got different formatting than before; the top line is green, and the next line bolded with a red background - this is the same colorscheme as I get for git commit messages (which highlight an error if you don't leave the second line blank). Not sure if this helps or just confuses the issue...
In line with a comment below, I've checked the key mappings on that screen:
:verbose nmap D
> n D *@:<C-U>execute <SNR>72_StageDiff('Gvdiff')<CR>
> Last set from ~/.dotfiles/vim/bundle/vim-fugitive/plugin/fugitive.vim
:verbose nmap -
> n - *@:<C-U>silent execute <SNR>72_StageToggle(line('.'),line('.')+v:count1-1)<CR>
> Last set from ~/.dotfiles/vim/bundle/vim-fugitive/plugin/fugitive.vim
Anyone know what mistake I'm making, or what this other status-like screen I'm getting is ?
In this case, my version of Git had been updated by a regular system update, whereas my version of vim-fugitive had not been updated for some time.
This meant the new Git status format was not compatible with the older version of vim-fugitive's expectataions.
I use vundle to manage my vim plugins, so the solution in vim was to run
:BundleInstall!
This updated ALL my plugins of course, so hopefully won't cause more problems. But for now, my :Gstatus command in vim is working nicely again.
Thanks to Kamil Kisiel for this answer
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With