My vim configuration on Github

Ever since I started using Vim as my preferred text editor I have been keeping my configuration under source control. At first I kept my config for all the various applications + some useful scripts in one Git repository. But after I had given a (very) short presentation at work, I started to think about splitting of my vim-configuration into a separate repository. I have already learned a lot of useful tricks and settings about vim by studying other peoples vimrc-files, so I feel like it's only fair to also put mine out in the wild.

So first I did a little Git magic to split of my vim subdirectory into a separate Git repository, without losing any of the history. The answer on how to do this can be found on StackOverflow: Detach subdirectory into separate Git repository.

Then I created a repository on Github and pushed my entire vim configuration. Feel free to explore it and use pieces from it. (Or use it in it's entirety, but I don't think that would really be useful)

Some 'cool' features I use in my vimrc:

Pathogen

A few weeks ago I started using the Pathogen-script for vim. This script makes it possible to keep every vim-plugin in it's own directory. To use Pathogen you need to call at least one of it's functions so it can do it's job. I choose to keep this initialization in a separate file from my vimrc-file. That is why my vimrc starts with the following line:

runtime pathogen_init

The reason I use runtime and not source to 'source' the pathogen_init file, is because runtime will search for the file in the vim runtimepath, while source takes an actual path. So by using runtime I assure that the pathogen_init-script can also be found when running under windows (just in case I would ever have to use that again).

The actual pathogen_init script looks like:

" To disable a plugin, add it's bundle name to the following list
let g:pathogen_disabled = []

" for some reason the csscolor plugin is very slow when run on the terminal
" but not in GVim, so disable it if no GUI is running
if !has('gui_running')
    call add(g:pathogen_disabled, 'csscolor')
endif

" Gundo requires at least vim 7.3
if v:version < '703' || !has('python')
    call add(g:pathogen_disabled, 'gundo')
endif

call pathogen#runtime_append_all_bundles()

In this script I make use of the g:pathogen_disabled variable, which is used by the Pathogen plugin. With it, you can conditionally disable plugins by adding it's bundle name to the g:pathogen_disabled list.

Host-specific vimrc

As I already described in an earlier blogpost, I use 'host-specific vimrc-files'. You can see this in the last lines of my vimrc. I simply check for the existence of a filename like 'vimrc-andoria' (when the hostname of your machine is 'andoria') and source it if it exists. (this code still uses source so it will not work on windows).

Comments

Comment Atom Feed