" 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() if(bufwinnr('%')) > 1 wincmd c else bdelete endif endfunction nnoremap Q :call CloseWindowOrKillBuffer()