diff --git a/README.md b/README.md
index ca24a1b..99df4bf 100644
--- a/README.md
+++ b/README.md
@@ -2,37 +2,60 @@
[Vundle] is a short cut for **V**imb**undle** and is a ~80 LOC plugin for managing [Vim] plugins.
+## Why
+[Vundle] can:
+- automatically install vim script (aka bundle)
+- manage runtime path of your installed scripts so you don't have to
+- disable/enable bundles by commenting/uncommenting configured Bundle(requires reload)
+- NEW: search [all available vim scripts] by name
-## Installation
+[Vundle] takes advantage of [vim-scripts.org](http://vim-scripts.org)
+in order to install/search [all available vim scripts]
- mkdir -p ~/.vim/autoload/ && \
- curl http://github.com/gmarik/vundle/raw/master/autoload/vundle.vim > ~/.vim/autoload/vundle.vim
+## How
-## Configuration
+1. Setup [Vundle]:
-Add to your ~/.vimrc
+ git clone http://github.com/gmarik/vundle.git > ~/.vim/vundle.vim
- call vundle#rc()
- " My bundles
- " Bundle ""
- Bundle "http://github.com/vim-scripts/L9.git"
- Bundle "http://github.com/vim-scripts/FuzzyFinder.git"
- Bundle "git://git.wincent.com/command-t.git"
- Bundle "http://github.com/vim-scripts/rails.vim.git"
- Bundle "http://github.com/vim-scripts/ack.vim.git"
- " check http://vim-scripts.org for more
+2. Configure bundles:
-BTW [Vim-Scripts.org](http://vim-scripts.org) is a git mirror of all vim scripts. See [gmarik's vimrc](http://github.com/gmarik/vimfiles/blob/6926a7e2ba176a292a8e71b6e4c17f15b8eebe04/vimrc#L134) for working example.
+ Add to your ~/.vimrc
:
-## Installing plugins
+ set rtp+=~/.vim/vundle.git/
+ call vundle#rc()
-Launch vim
and run :BundleInstall
.
+ " My bundles
+ Bundle "L9"
+ Bundle "FuzzyFinder"
+ Bundle "rails.vim"
+ Bundle "ack.vim"
+ Bundle "git://git.wincent.com/command-t.git"
+ " check http://vim-scripts.org for more
-Or from command line:
+3. Install configured bundles:
- $ vim -e -c 'BundleInstall' -c 'q'
+ Launch vim
and run :BundleInstall
.
-triggers [Git clone](http://gitref.org/creating/#clone) for each configured repo to ~/.vim/bundle/
.
+ Or from command line:
+
+ $ vim -e -c 'BundleInstall' -c 'q'
+
+ triggers [Git clone](http://gitref.org/creating/#clone) for each configured repo to ~/.vim/bundle/
.
+
+ See [gmarik's vimrc](https://github.com/gmarik/vimfiles/blob/1f4f26d42f54443f1158e0009746a56b9a28b053/vimrc#L136) for working example.
+
+## Searching
+
+ :BundleSearch Finder
+
+Will split new window with results:
+
+ Bundle "FuzzyFinder"
+ Bundle "Indent-Finder"
+ Bundle "cHeaderFinder"
+
+So you can just copy one you need to you .vimrc
## Inspiration and ideas from
@@ -41,12 +64,19 @@ triggers [Git clone](http://gitref.org/creating/#clone) for each configured repo
* [Scott Bronson](http://github.com/bronson)
## TODO:
+[Vundle] is a work in progress so any ideas/patches appreciated
-* improve code
-* support non [Git] resources aswell
+* tests
+* allow specify revision/version?
+* activate newly added bundles on .vimrc reload
+* search by description aswell
+* show descrption in search results
+* use location list/quick fix list for search results
+* make it rock!
[Vundle]:http://github.com/gmarik/vundle
[Pathogen]:http://github.com/tpope/vim-pathogen/
[Bundler]:http://github.com/wycats/bundler/
[Vim]:http://vim.org
[Git]:http://git-scm.com
+[all available vim scripts]:http://vim-scripts.org/scripts.html
diff --git a/autoload/vundle.vim b/autoload/vundle.vim
index 7ca0724..d3d29e0 100644
--- a/autoload/vundle.vim
+++ b/autoload/vundle.vim
@@ -1,34 +1,49 @@
" vundle.vim - is a shortcut for Vim Bundle and Is a simple plugin manager for Vim
" Maintainer: http://github.com/gmarik
-" Version: 0.1
+" Version: 0.2
" Readme: http://github.com/gmarik/vundle/blob/master/README.md
-if exists("g:vundle_loaded") || &cp | finish | endif
-let g:vundle_loaded = 1
-
-au BufRead,BufNewFile {bundlerc} set ft=vim
-
-com! -nargs=+ Bundle call vundle#add_bundle()
+com! -nargs=+ Bundle call vundle#add_bundle()
com! -nargs=0 BundleInstall call vundle#install_bundles()
-com! -nargs=0 BundleDocs call vundle#helptagify_bundles()
+com! -nargs=0 BundleDocs call vundle#helptagify_bundles()
-let g:bundle_dir = expand('~/.vim/bundle/')
+com! -nargs=* BundleSearch call vundle#scripts#search()
func! vundle#rc()
+ let g:bundle_dir = expand('$HOME/.vim/bundle/')
let g:bundles = []
endf
func! vundle#add_bundle(...)
- let [uri; rest] = a:000 | let opts = {}
+ let [arg; rest] = a:000 | let opts = {}
if len(rest) == 1 | let opts = rest[0] | endif
- let bundle = vundle#new_bundle(uri, opts)
- call vundle#require_bundle(bundle)
+ " try
+ let bundle = vundle#new_bundle(arg, opts)
+ call vundle#require_bundle(bundle)
+ " catch | echo 'Error: loadin '.arg | endtry
endf
-func! vundle#new_bundle(uri, opts)
- let bundle = a:opts
- let bundle.uri = a:uri
- let bundle.name = split(a:uri,'\/')[-1]
+func! vundle#init_bundle(arg, opts)
+ let bundle = a:opts | let arg = a:arg
+ if arg =~ '^\s*\d\+\s*$' || type(arg) == type(42) " script id
+ let bundle.name = vundle#scripts#find(arg)
+ let bundle.uri = vundle#script_uri(bundle.name)
+ elseif arg =~ '^\s*\(git@\|git://\)\S\+' || arg =~ 'https\?://' || arg =~ '\.git\*$'
+ let bundle.uri = arg
+ let bundle.name = substitute(split(bundle.uri,'\/')[-1], '\.git\s*$','','i')
+ else
+ let bundle.name = arg
+ let bundle.uri = vundle#script_uri(bundle.name)
+ endif
+ return bundle
+endf
+
+func! vundle#script_uri(name)
+ return 'http://github.com/vim-scripts/'.a:name.'.git'
+endf
+
+func! vundle#new_bundle(arg, opts)
+ let bundle = vundle#init_bundle(a:arg, a:opts)
let bundle.path = expand(g:bundle_dir.''.bundle.name)
let bundle.rtpath = has_key(bundle, 'rtp') ? join([bundle.path, bundle.rtp], '/') : bundle.path
call add(g:bundles, bundle)
@@ -68,3 +83,4 @@ func! vundle#helptagify_bundles()
endif
endfor
endf
+