Allow updating specific plugins.

This commit is contained in:
Shahaf Arad 2015-02-16 20:03:37 +02:00 committed by Jacobo de Vera
parent a864467285
commit 1df432aecf
4 changed files with 40 additions and 9 deletions

View File

@ -8,8 +8,8 @@
com! -nargs=+ -bar Plugin com! -nargs=+ -bar Plugin
\ call vundle#config#bundle(<args>) \ call vundle#config#bundle(<args>)
com! -nargs=? -bang -complete=custom,vundle#scripts#complete PluginInstall com! -nargs=* -bang -complete=custom,vundle#scripts#complete PluginInstall
\ call vundle#installer#new('!' == '<bang>', <q-args>) \ call vundle#installer#new('!' == '<bang>', <f-args>)
com! -nargs=? -bang -complete=custom,vundle#scripts#complete PluginSearch com! -nargs=? -bang -complete=custom,vundle#scripts#complete PluginSearch
\ call vundle#scripts#all('!' == '<bang>', <q-args>) \ call vundle#scripts#all('!' == '<bang>', <q-args>)
@ -24,7 +24,7 @@ com! -nargs=0 PluginDocs
\ call vundle#installer#helptags(g:bundles) \ call vundle#installer#helptags(g:bundles)
" Aliases " Aliases
com! PluginUpdate PluginInstall! com! -nargs=* -complete=custom,vundle#scripts#complete PluginUpdate PluginInstall! <args>
" Vundle Aliases " Vundle Aliases
com! -nargs=? -bang -complete=custom,vundle#scripts#complete VundleInstall PluginInstall<bang> <args> com! -nargs=? -bang -complete=custom,vundle#scripts#complete VundleInstall PluginInstall<bang> <args>

View File

@ -6,9 +6,21 @@
" ... -- any number of bundle specifications (separate arguments) " ... -- any number of bundle specifications (separate arguments)
" --------------------------------------------------------------------------- " ---------------------------------------------------------------------------
func! vundle#installer#new(bang, ...) abort func! vundle#installer#new(bang, ...) abort
let bundles = (a:1 == '') ? " No specific plugins are specified. Operate on all plugins.
\ g:bundles : if a:0 == 0
\ map(copy(a:000), 'vundle#config#bundle(v:val, {})') let bundles = g:bundles
" Specific plugins are specified for update. Update them.
elseif (a:bang)
let bundles = filter(copy(g:bundles), 'index(a:000, v:val.name) > -1')
" Specific plugins are specified for installation. Install them.
else
let bundles = map(copy(a:000), 'vundle#config#bundle(v:val, {})')
endif
if empty(bundles)
echoerr 'No bundles were selected for operation'
return
endif
let names = vundle#scripts#bundle_names(map(copy(bundles), 'v:val.name_spec')) let names = vundle#scripts#bundle_names(map(copy(bundles), 'v:val.name_spec'))
call vundle#scripts#view('Installer',['" Installing plugins to '.expand(g:bundle_dir, 1)], names + ['Helptags']) call vundle#scripts#view('Installer',['" Installing plugins to '.expand(g:bundle_dir, 1)], names + ['Helptags'])

View File

@ -39,7 +39,12 @@ endf
" candidates, see also :h command-completion-custom " candidates, see also :h command-completion-custom
" --------------------------------------------------------------------------- " ---------------------------------------------------------------------------
func! vundle#scripts#complete(a,c,d) func! vundle#scripts#complete(a,c,d)
" Return only installed plugins if updating
if match(a:c, '\v^Plugin%(Install!|Update)') == 0
return join(map(copy(g:bundles), 'v:val.name'), "\n")
else
return join(s:load_scripts(0),"\n") return join(s:load_scripts(0),"\n")
endif
endf endf

View File

@ -244,8 +244,16 @@ PluginInstall allows installation of plugins by name:
> >
:PluginInstall unite.vim :PluginInstall unite.vim
Installs and activates unite.vim. You can use Tab to auto-complete known Installs and activates unite.vim.
script names. Note that the installation just described isn't permanent. To
PluginInstall also allows installation of several plugins separated by space.
>
:PluginInstall tpope/vim-surround tpope/vim-fugitive
Installs both tpope/vim-surround and tpope/vim-fugitive from GitHub.
You can use Tab to auto-complete known script names.
Note that the installation just described isn't permanent. To
finish, you must put `Plugin 'unite.vim'` at the appropriate place in your finish, you must put `Plugin 'unite.vim'` at the appropriate place in your
`.vimrc` to tell Vundle to load the plugin at startup. `.vimrc` to tell Vundle to load the plugin at startup.
@ -263,6 +271,12 @@ Installs or updates the configured plugins. Press 'u' after updates complete
to see the change log of all updated bundles. Press 'l' (lowercase 'L') to to see the change log of all updated bundles. Press 'l' (lowercase 'L') to
see the log of commands if any errors occurred. see the log of commands if any errors occurred.
To update specific plugins, write their names separated by space:
>
:PluginInstall! vim-surround vim-fugitive
or >
:PluginUpdate vim-surround vim-fugitive
3.5 SEARCHING PLUGINS ~ 3.5 SEARCHING PLUGINS ~
*vundle-plugins-search* *:PluginSearch* *vundle-plugins-search* *:PluginSearch*
> >