I'm still kinda new in vim so i hope this question isn't too basic, but I couldn't find an answer in fugitive's DOCs.. im looking to add a toggling function that does the following:
if :Gblame buffer is open:
close buffer
else
execute "normal :Gblame<CR>"
endif
map gb :call (the above function)<CR>
I was thinking of adding a variable that changes between 1 or 0 depending on the number of times i used the "gb" mapping.
But what i would really want is a way to check if the buffer is open. is that possible?
The Fugitive plugin sets a custom
'filetype'in the sidebar blame buffer (tofugitiveblame; queried via:setlocal filetype?, or in Vimscript via the&l:filetypespecial variable). This only works when you're currently in the sidebar. To make this work for the main window, too, you'd have to check for the buffer name (e.g. viabufwinnr('fugitiveblame') != -1), and then also go back to that window before calling:close(or using:bdeletewith the buffer number obtained viabufnr('fugitiveblame')).Notes
:Gblameis a (custom) Ex command; you can just invoke it as-is in Vimscript; no need for:normalhere.:closewhen you're in it, as mentioned above.:help <SID>.:noremap; it makes the mapping immune to remapping and recursion.