A Pathogen-based Vim Plugin Manager for GitHub Repositories
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



microbe relies on pathogen and cURL to provide a simple management tool especially for Github-hosted Vim plugins.

Requires bash, curl and unzip. If Git-support is desired, Git is required.

NOTE: If you are looking for a command line tool that is able to handle more than just Github-hosted Plugins, you might want to have a look at vim-pandemic. It is, due to its capabilities, obviously a little more verbose than microbe (oh, how the names fit!) but looks rather usable. Not a command line tool but very powerful in the same domain is neobundle.


microbe is all about minimalism. It is a single standalone script (built using bashing) relying only on tools available out-of-the-box on most UNIX systems: bash, curl, unzip, column, ... Only if Git resources shall be accessed is additional work necessary.

The command line interface resembles that of apt-get, hopefully making usage intuitive and concise.


Current stable Version: 0.2.5

User Installation

mkdir ~/.bin
curl -fkLo ~/.bin/microbe "https://raw.github.com/xsc/microbe-vim/stable/bin/microbe"
chmod +x ~/.bin/microbe

Make sure to add ~/.bin to your $PATH, e.g. using export PATH="$PATH:~/.bin" in your ~/.bashrc.

System-wide Installation

sudo curl -fkLo "/usr/bin/microbe" "https://raw.github.com/xsc/microbe-vim/stable/bin/microbe"
sudo chmod +x /usr/bin/microbe


microbe <command> [<parameters>]


  • update-pathogen: update pathogen to the most recent version
  • install [<GitHub User>/]<plugin>: clone the given plugin and add its contents to pathogen's include path
  • remove [<GitHub User>/]<plugin>: remove the given plugin from pathogen's include path
  • purge [<GitHub User>/]<plugin>: remove the given plugin from the machine
  • update [[<GitHub User>/]<plugin>]: update all plugins or the given one
  • list: list all repositories maintained by microbe and whether they are used by the current user

Multiple plugins can be given as parameters. If no GitHub user is found, vim-scripts will be used. Also, for a given <plugin> both repositories <user>/<plugin> and <user>/<plugin>.vim will be checked.

Alternatively, the location of a Git repository can be given instead of a user/repository pair. Obviously, this requires Git.


Installing from vim-scripts or specific GitHub User

$ microbe install paredit jrk/vim-ocaml
Installing vim-scripts/paredit.vim ...
- Getting ZIP from https://github.com/vim-scripts/paredit.vim/archive/master.zip ... OK.
- Extracting Archive to /home/yannick/.microbe/vim-scripts/paredit.vim ... OK.
- Activating Plugin: vim-scripts/paredit.vim ... OK.
Installing jrk/vim-ocaml ...
- Getting ZIP from https://github.com/jrk/vim-ocaml/archive/master.zip ... OK.
- Extracting Archive to /home/yannick/.microbe/jrk/vim-ocaml ... OK.
- Activating Plugin: jrk/vim-ocaml ... OK.

Installing from Git Repository

$ microbe install https://github.com/jrk/vim-ocaml
Installing external-git/vim-ocaml ...
- Cloning from https://github.com/jrk/vim-ocaml ...

Cloning into '/home/yannick/.microbe/external-git/vim-ocaml'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 12 (delta 1), reused 12 (delta 1)
Unpacking objects: 100% (12/12), done.

- Activating Plugin: external-git/vim-ocaml ... OK.

Updating Plugins

$ microbe update
Updating external-git/vim-ocaml ...

Already up-to-date.

Updating jrk/vim-ocaml ... OK.
Updating vim-scripts/paredit.vim ... OK.

Note that since microbe uses the ZIP archives of GitHub hosted repositories, a new version will always be downloaded, even if no changes occured.

Listing Plugins

$ microbe list
external-git/vim-ocaml   (installed)  312KB  /home/yannick/.microbe/external-git/vim-ocaml
jrk/vim-ocaml            (installed)  72KB   /home/yannick/.microbe/jrk/vim-ocaml
vim-scripts/paredit.vim  (installed)  108KB  /home/yannick/.microbe/vim-scripts/paredit.vim

Note the size difference between external-git/vim-ocaml (Git clone) and jrk/vim-ocaml.

Hitting the Cache

$ microbe install paredit
Installing vim-scripts/paredit.vim ...
- Using Cached Plugin.
- Activating Plugin: vim-scripts/paredit.vim ... OK.

Removing a Plugin from Pathogen

$ microbe remove paredit
Removing vim-scripts/paredit.vim ... OK.

$ microbe list
external-git/vim-ocaml   (installed)      312KB  /home/yannick/.microbe/external-git/vim-ocaml
jrk/vim-ocaml            (installed)      72KB   /home/yannick/.microbe/jrk/vim-ocaml
vim-scripts/paredit.vim  (not installed)  108KB  /home/yannick/.microbe/vim-scripts/paredit.vim

Removing a Plugin from Disk

$ microbe purge external-git/vim-ocaml
Removing external-git/vim-ocaml ... OK.
Purging external-git/vim-ocaml ... OK.

$ microbe list
jrk/vim-ocaml            (installed)      72KB   /home/yannick/.microbe/jrk/vim-ocaml
vim-scripts/paredit.vim  (not installed)  108KB  /home/yannick/.microbe/vim-scripts/paredit.vim

Export, Import and Configuration via .vimrc

You can use microbe to write the installed plugins to a file:

$ microbe export > microbe.plugins
$ cat microbe.plugins
"bundle jrk/vim-ocaml
"bundle paredit

The format of the plugin list is suitable for use in .vimrc, since " indicates a comment and will thus not influence your actual configuration (this is very similar to infect's approach to plugin management.

You can load packages using:

microbe load [<file>]

where <file> defaults to your .vimrc.


Copyright © 2013-2015 Yannick Scherer

Distributed under the MIT license.