Adding BundleClean!
- BundleClean now requires confirmation
This commit is contained in:
parent
75f14de912
commit
814c420ec2
@ -68,7 +68,7 @@ Searching requires [<code>curl</code>](http://curl.haxx.se/)
|
||||
|
||||
:BundleClean
|
||||
|
||||
removes unused script dirs from your `.vim/bundle`
|
||||
confirms removal of unused script dirs from your `.vim/bundle`. `BundleClean!` does that silently.
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -5,11 +5,11 @@
|
||||
" Version: 0.5
|
||||
|
||||
com! -nargs=+ Bundle call vundle#config#bundle(<args>)
|
||||
com! -nargs=? -bang BundleInstall call vundle#installer#install("<bang>")
|
||||
com! -nargs=? BundleClean call vundle#installer#clean()
|
||||
com! -nargs=? -bang BundleInstall call vundle#installer#install('<bang>')
|
||||
com! -nargs=? -bang BundleClean call vundle#installer#clean('<bang>')
|
||||
com! -nargs=0 BundleDocs call vundle#installer#helptags()
|
||||
|
||||
com! -nargs=+ -bang BundleSearch silent call vundle#scripts#search("<bang>", <q-args>)
|
||||
com! -nargs=+ -bang BundleSearch silent call vundle#scripts#search('<bang>', <q-args>)
|
||||
|
||||
func! vundle#rc()
|
||||
let g:bundle_dir = expand('$HOME/.vim/bundle')
|
||||
|
@ -10,6 +10,17 @@ func! vundle#installer#helptags()
|
||||
call s:log('Done. '.c.' bundles processed')
|
||||
endf
|
||||
|
||||
func! vundle#installer#clean(bang)
|
||||
let bundle_dirs = map(copy(g:bundles), 'v:val.path()')
|
||||
let all_dirs = split(globpath(g:bundle_dir, '*'), "\n")
|
||||
let x_dirs = filter(all_dirs, '0 > index(bundle_dirs, v:val)')
|
||||
if (!empty(x_dirs))
|
||||
if ('!' == a:bang || input('Are you sure you want to remove '.len(x_dirs).' bundles?') =~? 'y')
|
||||
exec '!rm -rf '.join(map(x_dirs, 'shellescape(v:val)'), ' ')
|
||||
endif
|
||||
end
|
||||
endf
|
||||
|
||||
func! s:reload_bundles()
|
||||
" TODO: obtain Bundles without sourcing .vimrc
|
||||
silent source $MYVIMRC
|
||||
@ -42,13 +53,6 @@ func! s:install(bang, bundle)
|
||||
if synced | call vundle#config#require(a:bundle) | endif
|
||||
endf
|
||||
|
||||
func! vundle#installer#clean()
|
||||
let bundle_dirs = map(copy(g:bundles), 'v:val.path()')
|
||||
let all_dirs = split(globpath(g:bundle_dir, '*'), "\n")
|
||||
let x_dirs = filter(all_dirs, '0 > index(bundle_dirs, v:val)')
|
||||
for d in x_dirs | exec '!rm -rf "'.escape(d,'"').'"' | endfor
|
||||
endf
|
||||
|
||||
" TODO: make it pause after output in console mode
|
||||
func! s:log(msg)
|
||||
if has('gui_running')
|
||||
|
Loading…
Reference in New Issue
Block a user