Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

ovim Vim Plugin Manager

This is a plugin manager for vim. Unlike the other similar systems out there, like the vim-addon-manager written in perl and pathogen by tpope, ovim takes a completely different approach to managing vim plugins. A way I think, is the correct way.

How does it do?

Here's how ovim works, you have a repository of vim plugins somewhere on your system. The repository contains vim plugins/scripts each in their own directory. Much like the structure of bundle directory if you used pathogen.

ovim reads this directory and builds a .vim directory. So, the .vim directory now is just a crappy output that ovim generates. You almost never have to fiddle with the .vim directory any more. Instead, you add the plugin you just downloaded into the repository and run ovim make and your .vim directory is updated.

Now, you may think this running ovim make thing every time you add/remove a plugin is a hassle, but, bear with me, it is not as bad as it might sound. In fact, this lets us some interesting features for ovim. For example, say, I am using the NERDComment plugin to help me with commenting source code. After a few days I stumble upon the tComment plugin and wanted to give it a shot, but didn't want to delete the NERDComment plugin. So, I rename the NERDComment directory to _NERDComment or .NERDComment and add the tComment directory containing the tComment plugin. Now when I run ovim make, ovim will skip the NERDComment plugin when building the .vim, but copies the tComment plugin. If I didn't like it, I could just remove or disable tComment and go back to NERDComment again!

Repository Structure

The repository is just a simple directory anywhere on your system. (I recommend putting it in your dropbox directory or atleast put a link there).

Under the repository directory, ovim looks for directories that do not start with a _ or a .. Among these, each directory is understood as a vim-plugin unless the name of the directory ends in grp. If the directory name ends in grp, then ovim takes it not as a vim plugin, but a directory containing one or more vim plugins, each in their own directories.

An example will make more sense. The following is a possible structure of an ovim-repo

  • ovim-repo
  • awesome-vim-script-1
    • plugin
    • doc
    • autoload
  • awesome-vim-script-2
    • syntax
    • ftplugin
  • my-colorschems.grp
    • tango
    • colors
    • blackboard
    • colors
    • lucius
    • colors

In the above repo, awesome-vim-script-1 and awesome-vim-script-2 are vim plugins themselves, but the my-colorschems.grp is not itself a vim plugin, but a directory containing multiple vim plugins.

Troubleshooting

ovim is currently in alpha stage and I won't releasing any standard downloads and such until I am confident to at least tag it as beta.

Also, I developed this on ubuntu 10.04 (Linux) and I expect it to work on OSX too. But I can't promise anything for windows users yet. I'd love it if someone with vim on a windows box (and cygwin) can test this out and tell me how it works. Thanks.

About

Currently, I am the only developer, but I am pretty new to vim (started in oct'09). So, I'd really appreciate any help in helping me make this a more robust system. Just fork it and get in touch.

License

ovim is licensed using the MIT License as produced in the accompanying LICENSE.txt file.

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.