Emmabuntus, Ubuntu, Derivate, Linux, Open Source BackTrack, Linux, distributions, Ubuntu, derivate, securuty, forensic VirtualBox, Linux, Ubuntu, Raring Ringtail synaptic, Ubuntu, Linux, software packages jwplayer, multimedia, Linux, Ubuntu, flash Meshlab, graphic, software, Ubuntu, open source, Linux Synapse, Linux, Ubuntu, raring, Quantal Gimp, Ubuntu, Linux FreeMind, Linux, open source Linux, infographic, history

Using Pathogen for your Vim config files: easy manipulation of 'runtimepath', 'path', 'tags', etc.

If you are an avid Vim user, you know that the one thing that is lacking is a good plugin management system.

With the default vim installation, plugins are scattered through various folders in your .vim folder and its a nightmare to enable/disable or remove plugins once you have installed them.

There are numerous tools out there that claim to make plugin management easier, but frankly, I haven’t tried any of them since they all seem to involve having to install a separate tool to do the task.

But this neat plugin by Tim Pope called Pathogen, is a little different. It uses vim itself to mange the plugins properly. With Pathogen, plugin management is now a breeze.
Using Pathogen.

Pathogen basically modifies the vim runtime paths which tell vim where to find plugins. The standard directory used by Pathogen to install vim plugins is “.vim/bundle”.

When used appropriately (with the correct line of code in your vimrc) Pathogen looks for a “bundle” folder in “.vim” and adds the subdirectories of it to the runtime path. This essentially means each subdirectory of “bundle” looks like a “.vim/” folder to vim.

Taking the plugin fuzzyfinder as an example, the following table shows the path translations

    .vim/bundle/fuzzyfinder/doc  -> .vim/doc/

    .vim/bundle/fuzzyfinder/plugin -> .vim/plugin

    .vim/bundle/fuzzyfinder/autoload -> .vim/autoload

This makes using Pathogen and Vim plugins really easy.  All you have to do to install a plugin is to get the plugin from wherever, and put it in its own folder in “.vim/bundle”. 

To remove the plugin, just delete the folder from “.vim/bundle”.  You can even use symlinking techniques as used in many Linux programs to mange their configuration files. 

Create a “.vim/bundle-available” folder, put all the plugins in there and create symlinks from “.vim/bundle” pointing to the corresponding plugin in “.vim/bundle-available”.

There are a few things to note for the proper operation of Pathogen. The folder that you create inside “.vim/bundle” would need to have the proper subdirectory organization depending on what types of files the plugin contains.   That is, you can’t just drop the .vim file in the main folder of the plugin. 

If the file a is a plugin type, it needs to go to the “plugin” folder, if its an autoload type, it needs to go the “autoload” folder. 

continue with our fuzzyfinder example, this plugin has a file called “fuf.vim” in its “plugin”(.vim/bundle/fuzzyfinder/plugin/fuf.vim) folder. 

If we placed this fuf.vim file in the main fuzzyfinder folder (.vim/bundle/fuzzyfinder/fuf.vim) , the plugin will not work properly since it will look just like “.vim/fuf.vim” to Vim. 

Moreover, don’t make the mistake I made and name the “bundle” folder “bundles”, it won’t work.

The proper usage instructions for Pathogen can be found on the plugin’s page  http://www.vim.org/scripts/script.php?script_id=2332

But to summarize:

    1. Install Pathogen by putting “pathogen.vim” in “.vim/autoload” folder.

    2. Add “call pathogen#runtime_append_all_bundles()” without the quotes to your .vimrc

    3. Create a “.vim/bundle” and put your plugins it.  Each plugin needs its own folder.

Custom Search
Adserver           610x250

If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog:

Share on Google Plus

About Hugo Repetto

Ubuntu is a Linux distribution that offers an operating system predominantly focused on desktop computers but also provides support for servers. Based on Debian GNU / Linux, Ubuntu focuses on ease of use, freedom in usage restriction, regular releases (every 6 months) and ease of installation.
    Blogger Comment
    Facebook Comment


Post a Comment