Add unmanaged plugins for convenience
This commit is contained in:
69
unmanaged-vim-plug/bufonly/plugin/BufOnly.vim
Normal file
69
unmanaged-vim-plug/bufonly/plugin/BufOnly.vim
Normal file
@@ -0,0 +1,69 @@
|
||||
" BufOnly.vim - Delete all the buffers except the current/named buffer.
|
||||
"
|
||||
" Copyright November 2003 by Christian J. Robinson <infynity@onewest.net>
|
||||
"
|
||||
" Distributed under the terms of the Vim license. See ":help license".
|
||||
"
|
||||
" Usage:
|
||||
"
|
||||
" :Bonly / :BOnly / :Bufonly / :BufOnly [buffer]
|
||||
"
|
||||
" Without any arguments the current buffer is kept. With an argument the
|
||||
" buffer name/number supplied is kept.
|
||||
|
||||
command! -nargs=? -complete=buffer -bang Bonly
|
||||
\ :call BufOnly('<args>', '<bang>')
|
||||
command! -nargs=? -complete=buffer -bang BOnly
|
||||
\ :call BufOnly('<args>', '<bang>')
|
||||
command! -nargs=? -complete=buffer -bang Bufonly
|
||||
\ :call BufOnly('<args>', '<bang>')
|
||||
command! -nargs=? -complete=buffer -bang BufOnly
|
||||
\ :call BufOnly('<args>', '<bang>')
|
||||
|
||||
function! BufOnly(buffer, bang)
|
||||
if a:buffer == ''
|
||||
" No buffer provided, use the current buffer.
|
||||
let buffer = bufnr('%')
|
||||
elseif (a:buffer + 0) > 0
|
||||
" A buffer number was provided.
|
||||
let buffer = bufnr(a:buffer + 0)
|
||||
else
|
||||
" A buffer name was provided.
|
||||
let buffer = bufnr(a:buffer)
|
||||
endif
|
||||
|
||||
if buffer == -1
|
||||
echohl ErrorMsg
|
||||
echomsg "No matching buffer for" a:buffer
|
||||
echohl None
|
||||
return
|
||||
endif
|
||||
|
||||
let last_buffer = bufnr('$')
|
||||
|
||||
let delete_count = 0
|
||||
let n = 1
|
||||
while n <= last_buffer
|
||||
if n != buffer && buflisted(n)
|
||||
if a:bang == '' && getbufvar(n, '&modified')
|
||||
echohl ErrorMsg
|
||||
echomsg 'No write since last change for buffer'
|
||||
\ n '(add ! to override)'
|
||||
echohl None
|
||||
else
|
||||
silent exe 'bdel' . a:bang . ' ' . n
|
||||
if ! buflisted(n)
|
||||
let delete_count = delete_count+1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
let n = n+1
|
||||
endwhile
|
||||
|
||||
if delete_count == 1
|
||||
echomsg delete_count "buffer deleted"
|
||||
elseif delete_count > 1
|
||||
echomsg delete_count "buffers deleted"
|
||||
endif
|
||||
|
||||
endfunction
|
||||
Reference in New Issue
Block a user