From a59552e75af09e97e998dc174e3eedab245c9fdc Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Thu, 11 Feb 2016 08:42:06 -0500 Subject: [PATCH] bclose to vundle --- vim/plugin/bclose.vim | 78 ------------------------------------------- vimrc | 6 ++++ 2 files changed, 6 insertions(+), 78 deletions(-) delete mode 100644 vim/plugin/bclose.vim diff --git a/vim/plugin/bclose.vim b/vim/plugin/bclose.vim deleted file mode 100644 index fd87bdd..0000000 --- a/vim/plugin/bclose.vim +++ /dev/null @@ -1,78 +0,0 @@ -" Delete buffer while keeping window layout (don't close buffer's windows). -" Version 2008-11-18 from http://vim.wikia.com/wiki/VimTip165 -if v:version < 700 || exists('loaded_bclose') || &cp - finish -endif -let loaded_bclose = 1 -if !exists('bclose_multiple') - let bclose_multiple = 1 -endif - -" Display an error message. -function! s:Warn(msg) - echohl ErrorMsg - echomsg a:msg - echohl NONE -endfunction - -" Command ':Bclose' executes ':bd' to delete buffer in current window. -" The window will show the alternate buffer (Ctrl-^) if it exists, -" or the previous buffer (:bp), or a blank buffer if no previous. -" Command ':Bclose!' is the same, but executes ':bd!' (discard changes). -" An optional argument can specify which buffer to close (name or number). -function! s:Bclose(bang, buffer) - if empty(a:buffer) - let btarget = bufnr('%') - elseif a:buffer =~ '^\d\+$' - let btarget = bufnr(str2nr(a:buffer)) - else - let btarget = bufnr(a:buffer) - endif - if btarget < 0 - call 'bdelete'.a:bang - call s:Warn('No matching buffer for '.a:buffer) - return - endif - if empty(a:bang) && getbufvar(btarget, '&modified') - call s:Warn('No write since last change for buffer '.btarget.' (use :Bclose!)') - return - endif - " Numbers of windows that view target buffer which we will delete. - let wnums = filter(range(1, winnr('$')), 'winbufnr(v:val) == btarget') - if !g:bclose_multiple && len(wnums) > 1 - call s:Warn('Buffer is in multiple windows (use ":let bclose_multiple=1")') - return - endif - let wcurrent = winnr() - for w in wnums - execute w.'wincmd w' - let prevbuf = bufnr('#') - if prevbuf > 0 && buflisted(prevbuf) && prevbuf != w - buffer # - else - bprevious - endif - if btarget == bufnr('%') - " Numbers of listed buffers which are not the target to be deleted. - let blisted = filter(range(1, bufnr('$')), 'buflisted(v:val) && v:val != btarget') - " Listed, not target, and not displayed. - let bhidden = filter(copy(blisted), 'bufwinnr(v:val) < 0') - " Take the first buffer, if any (could be more intelligent). - let bjump = (bhidden + blisted + [-1])[0] - if bjump > 0 - execute 'buffer '.bjump - else - execute 'enew'.a:bang - endif - endif - endfor - execute 'bdelete'.a:bang.' '.btarget - execute wcurrent.'wincmd w' -endfunction - -command! -bang -complete=buffer -nargs=? Bclose call Bclose('', '') -" command! -bang -complete=buffer -nargs=? bc call Bclose('', '') -nnoremap bd :Bclose -nnoremap bD :Bclose! -nnoremap BD :Bclose! - diff --git a/vimrc b/vimrc index 642e13b..a88a43a 100644 --- a/vimrc +++ b/vimrc @@ -18,6 +18,7 @@ Plugin 'ctrlpvim/ctrlp.vim' Plugin 'godlygeek/tabular' Plugin 'itchyny/lightline.vim' Plugin 'nathanaelkane/vim-indent-guides' +Plugin 'rbgrouleff/bclose.vim' Plugin 'rodjek/vim-puppet' Plugin 'thoughtbot/vim-rspec' Plugin 'tpope/vim-dispatch' @@ -160,6 +161,11 @@ map ra :bufdo e! map s :Vexplore ~/Source/ map d :Vexplore . +" bclose +nnoremap bd :Bclose +nnoremap bD :Bclose! +nnoremap BD :Bclose! + map fw :FixWhitespace map lf :call LargeFileToggle() map sa :call RenameFile()