21 lines
589 B
VimL
21 lines
589 B
VimL
" Use Q to intelligently close a window
|
|
" (if there are multiple windows into the same buffer)
|
|
" or kill the buffer entirely if it's the last window looking into that buffer
|
|
function! CloseWindowOrKillBuffer()
|
|
let number_of_windows_to_this_buffer = len(filter(range(1, winnr('$')), "winbufnr(v:val) == bufnr('%')"))
|
|
|
|
" We should never bdelete a nerd tree
|
|
if matchstr(expand("%"), 'NERD') == 'NERD'
|
|
wincmd c
|
|
return
|
|
endif
|
|
|
|
if number_of_windows_to_this_buffer > 1
|
|
wincmd c
|
|
else
|
|
bdelete
|
|
endif
|
|
endfunction
|
|
|
|
nnoremap <silent> Q :call CloseWindowOrKillBuffer()<CR>
|