dot_vim
This commit is contained in:
parent
f0510126ba
commit
7a7c647c22
212 changed files with 30625 additions and 30625 deletions
70
dot_vim/plugin/bclose.vim
Normal file
70
dot_vim/plugin/bclose.vim
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
if exists("loaded_bclosePlugin")
|
||||
finish
|
||||
endif
|
||||
if (v:progname == "ex")
|
||||
finish
|
||||
endif
|
||||
let loaded_bclosePlugin = 1
|
||||
|
||||
|
||||
"here is a more exotic version of my original Kwbd script
|
||||
"delete the buffer; keep windows; create a scratch buffer if no buffers left
|
||||
function s:Kwbd(kwbdStage)
|
||||
if(a:kwbdStage == 1)
|
||||
if(!buflisted(winbufnr(0)))
|
||||
bd!
|
||||
return
|
||||
endif
|
||||
let s:kwbdBufNum = bufnr("%")
|
||||
let s:kwbdWinNum = winnr()
|
||||
windo call s:Kwbd(2)
|
||||
execute s:kwbdWinNum . 'wincmd w'
|
||||
let s:buflistedLeft = 0
|
||||
let s:bufFinalJump = 0
|
||||
let l:nBufs = bufnr("$")
|
||||
let l:i = 1
|
||||
while(l:i <= l:nBufs)
|
||||
if(l:i != s:kwbdBufNum)
|
||||
if(buflisted(l:i))
|
||||
let s:buflistedLeft = s:buflistedLeft + 1
|
||||
else
|
||||
if(bufexists(l:i) && !strlen(bufname(l:i)) && !s:bufFinalJump)
|
||||
let s:bufFinalJump = l:i
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
let l:i = l:i + 1
|
||||
endwhile
|
||||
if(!s:buflistedLeft)
|
||||
if(s:bufFinalJump)
|
||||
windo if(buflisted(winbufnr(0))) | execute "b! " . s:bufFinalJump | endif
|
||||
else
|
||||
enew
|
||||
let l:newBuf = bufnr("%")
|
||||
windo if(buflisted(winbufnr(0))) | execute "b! " . l:newBuf | endif
|
||||
endif
|
||||
execute s:kwbdWinNum . 'wincmd w'
|
||||
endif
|
||||
if(buflisted(s:kwbdBufNum) || s:kwbdBufNum == bufnr("%"))
|
||||
execute "bd! " . s:kwbdBufNum
|
||||
endif
|
||||
if(!s:buflistedLeft)
|
||||
set buflisted
|
||||
set bufhidden=delete
|
||||
set buftype=nofile
|
||||
setlocal noswapfile
|
||||
endif
|
||||
else
|
||||
if(bufnr("%") == s:kwbdBufNum)
|
||||
let prevbufvar = bufnr("#")
|
||||
if(prevbufvar > 0 && buflisted(prevbufvar) && prevbufvar != s:kwbdBufNum)
|
||||
b #
|
||||
else
|
||||
bn
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
command! Kwbd call <SID>Kwbd(1)
|
||||
nnoremap <silent> <Plug>Kwbd :<C-u>Kwbd<CR>
|
||||
Loading…
Add table
Add a link
Reference in a new issue