refactor. simple UI to install individual scripts
This commit is contained in:
parent
d9bdffe74f
commit
3f13edf6aa
@ -19,6 +19,9 @@ com! -nargs=0 BundleDocs
|
||||
com! -nargs=+ -bang BundleSearch
|
||||
\ silent call vundle#scripts#search('!' == '<bang>', <q-args>)
|
||||
|
||||
com! -nargs=0 Vundle
|
||||
\ call vundle#scripts#browse()
|
||||
|
||||
com! -nargs=0 VundleLog
|
||||
\ silent pedit `=g:vundle_log`
|
||||
|
||||
|
@ -1,23 +1,32 @@
|
||||
func! vundle#scripts#search(bang,search_str)
|
||||
let matches = filter(s:load_scripts(a:bang), 'v:val =~? "'.escape(a:search_str,'"').'"')
|
||||
let results = map(matches, ' printf("Bundle ' ."'%s'".'", v:val) ')
|
||||
call s:display(reverse(results), a:search_str)
|
||||
call s:display(['" Search results for: '.a:search_str], matches)
|
||||
let @/=a:search_str
|
||||
redraw
|
||||
endf
|
||||
|
||||
func! vundle#scripts#browse()
|
||||
call s:display(['" Vim scripts: '], s:load_scripts(0))
|
||||
endf
|
||||
|
||||
func! vundle#scripts#complete(a,c,d)
|
||||
return join(s:load_scripts(0),"\n")
|
||||
endf
|
||||
|
||||
func! s:display(results,search_str)
|
||||
if !exists('s:buff') | let s:buff = tempname() | endif
|
||||
call writefile(['" Search results for: '.a:search_str] + a:results, s:buff)
|
||||
pedit `=s:buff`
|
||||
wincmd P
|
||||
let @/=a:search_str
|
||||
setlocal hls ignorecase ft=vim
|
||||
func! vundle#scripts#install() abort
|
||||
let line = substitute(substitute(getline('.'), '\s*Bundle\s*','','g'), "'",'','g')
|
||||
call vundle#installer#install(0, line)
|
||||
redraw!
|
||||
endf
|
||||
|
||||
func! s:display(headers, results)
|
||||
if !exists('s:browse') | let s:browse = tempname() | endif
|
||||
let results = reverse(map(a:results, ' printf("Bundle ' ."'%s'".'", v:val) '))
|
||||
call writefile(a:headers + results, s:browse)
|
||||
pedit `=s:browse`| wincmd P | wincmd H
|
||||
setl ft=vundle
|
||||
endf
|
||||
|
||||
func! s:fetch_scripts(to)
|
||||
let temp = tempname()
|
||||
exec '!curl http://vim-scripts.org/api/scripts.json > '.temp
|
||||
|
10
ftplugin/vundle.vim
Normal file
10
ftplugin/vundle.vim
Normal file
@ -0,0 +1,10 @@
|
||||
setl hls ro noma ignorecase
|
||||
|
||||
set syntax=vim
|
||||
|
||||
syn keyword vimCommand Bundle
|
||||
|
||||
nnoremap <buffer> <silent> <CR> :call vundle#scripts#install()<CR>
|
||||
nnoremap <buffer> s :BundleSearch
|
||||
nnoremap <buffer> c :BundleClean<CR>
|
||||
nnoremap <buffer> C :BundleClean!<CR>
|
Loading…
Reference in New Issue
Block a user