In this post I try to describe my vim configuration procedure and how it is connected with git. The whole concept is based on keeping all the configuration files in a separate directory. These files are connected using symbolic links in places where system or application requires it (eg $HOME/.vimrc -> /home/jdoe/workspace/dotfiles/vimrc). So first let’s create local directory for vim: cd ~/workspace/dotfiles;mkdir vim

Pathogen The first plugin that will be installed is pathogen created by tpope and accessible through github. Pathogen is a vim script to manage all vim plugins with ease. Below line add pathogen as submodule to our workspace repository created in

previous post: git submodule add https://github.com/tpope/vim-pathogen.git dotfiles/vim/pathogen Initialize repository and update it:

dotfiles/vim/autoload): ln -s ../pathogen/autoload/pathogen.vim . Directory structure should look like below:

$HOME/.vimrc should be added. Of course following rules about dotfiles management .vimrc should be created as separate file in ~/workspace/dotfiles and linked to $HOME/.vimrc. touch vimrc;ln -s $PWD/vimrc $HOME/.vimrc Add below lines to

$HOME/.vimrc: call pathogen#infect() call pathogen#runtime_append_all_bundles() call pathogen#helptags() syntax on filetype plugin indent on

Fuzzyfinder This is second plugin without which I cannot work. It speeds up searching though files, directories and tags. Has multiple useful features. RTFM if you want knew them. I will be also added as a git submodule:

  • Run vim and type :h fuf@en
  • Choose tag fuf-vimrc-example and press Ctrl-]. 
  • Mark whole keybindings copy and paste to ~/.vimrc Right now I think it is enough with vim configuration. Of course I use plenty of other plugins but I don’t have to time to describe my them all (maybe in future posts). Don’t forget to commit your changes, there could be a lot of them, however, to deal with the distribution of these changes and improve your skills try to use git add -p interface, suggesting after linux code style – each commit should contain separate logical part of the changes, personally I add prefix to my commits (eg . vim, git, etc.) to ease deal with git log. Notes:

  • vim helpfiles generates tags files, which should be ignored by git, so I recommend to create .gitignore in every module with blow content:

    .gitignore tags*

  • by default fuzzyfinder operate on unfriendly color palette espessicaly when using it through putty, highlighted pattern could be changed by added below lines to .vimrc (9 = black)

    ” fuzzy-finder – fix colors highlight PmenuSel ctermbg=9