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>
|