Vim script
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
vim-pathogen @ 0f47100


This is a complete Vim configuration that I'm using everywhere

Some help tips are provided for some of the plugins. please check out the plugin's docs for more info.


Vim with python & ruby support


From your homedirectory (on Linux/Mac OSX):

  • git clone git://
  • ln -sfn dotvim .vim
  • ln -sfn dotvim/vimrc .vimrc
  • you create and edit ~/.vim_local if you want to have your some local/personal settings you don't want to commit into the repo

Note: if you already have ~/.vim ~/.vimrc REMOVE THEM (you might want to backup them first :)

General configuration

, is used as mapleader

  • ,e mapped to :e **/. essentially you do ,efoo<tab> to get a list of all files starting with foo
  • ,s - toggle invisible characters display
  • Ctrl-E - switch between 2 last buffers (its just a :b#<cr> :)
  • Ctrl-N to cancel current search highlighing

Check out the 'vimrc' file for more...

"Interesting" Plugins:

  • autocomplpop 2.14.1 (

    Automatically opens popup menu for completions

    Shouldn't require config.

  • yankring 100 (

    Maintains a history of previous yanks, changes and deletes

    • ,y to show the yankring
    • ,[/,] - to cycle the just-pasted text though the yankring.
    • :h yankring.txt and :h yankring-tutorial for more
  • fugitive (github)

    A Git wrapper so awesome, it should be illegal

    • :Gstatus

      Bring up the output of git-status in the preview window. Press - to stage or unstage the file on the cursor line. Press p to do so on a per hunk basis (--patch). Press C to invoke :Gcommit.

    • :Gcommit [args]

      A wrapper around git-commit.

    • :Ggrep [args]

      :grep with git-grep as 'grepprg'.

    • :Gblame

      Run git-blame on the file and open the results in a scroll bound vertical split. Press enter on a line to reblame the file as it was in that commit.

    Much more in the plugin's doc

  • rails (github)

    Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more

    • :AV - open "alternate" file in a new vertical split
    • :AS - open "alternate" file in a new horizontal split
    • :RV - open "related" file in a new vertical split
    • :RS - open "related" file in a new horizontal split
    • :Rextract - extract partial (select text for extraction first)
    • :Rinvert - takes a self.up migration and writes a self.down.
    • gf - remapped to take context into account. recognizes models associations, partials etc.
    • :h rails for much more info ;)
  • syntastic (github)

    syntax checking plugin

    it will display the number of syntax errors in the current file in the vim's status line.

    use :Errors to display a window detailing the errors

  • snipmate (github)

    TextMate-style snippets for Vim

    write a snipped text and press TAB to expand it.

    To see the list of available snippets type Ctrl-R <Tab> in the insert mode

  • surround (github)

    Delete/change/add parentheses/quotes/XML-tags/much more with ease

    • dsX - delete surround X
    • csXY - change surround X with Y
    • S in visual mode - wrap selection
    • ysMovementX - surround movement with X

    You should REALLY read the docs if you want to use this one

  • vividchalk ( (github)

    A colorscheme strangely reminiscent of Vibrant Ink for a certain OS X editor

  • ack.vim (github)

    This plugin is a front for the Perl module App::Ack. Ack can be used as a replacement for 99% of the uses of grep.

    • :Ack [options] {pattern} [{directory}] - grep for the pattern in side directory and open result in a QuickFix window
    • :Ack --ruby ... - search only ruby files.
    • :h Ack - more help about Ack
  • textobj-rubyblock (github)

    A custom text object for selecting ruby blocks.

    In other words it teaches vim to understand what is ruby block, just like vim already understands what is word, paragraph, sentence etc.

    It works with begin/end, if/else/end etc.

    • var - select ruby block around the cursor including begin/end
    • vir - select insides of a ruby block around the cursor not including begin/end
    • dar - delete ruby block around the cursor
    • etc...

    Some 'trickier' usage patterns.

    • varar - select the ruby block that is around the ruby block that is around the cursor. including begin/end
    • vararir - select insides of the ruby block that is around the ruby block that is around the cursor. not including begin/end
    • ...
  • vim-indentobject (github)

    A text object for manipulating blocks based on their indentation

    This is good for Python, YAML, HAML etc.

    Usage is similar to textobj-rubyblock, just with i instead of r

    • vai / vii - select indent block including / excluding the outer lines
    • ...
    • vim-ruby-refactoring (github)

    Refactoring tool for Ruby in vim!

    • ,rap :RAddParameter - Add Parameter(s) to a method
    • ,rcpc :RConvertPostConditional - Convert Post Conditional
    • ,rel :RExtractLet - Extract to Let (Rspec)
    • ,rec :RExtractConstant - Extract Constant (visual selection)
    • ,relv :RExtractLocalVariable - Extract Local Variable (visual selection)
    • ,rit :RInlineTemp - Inline Temp. replace temp parameter by direct function call
    • ,rrlv :RRenameLocalVariable - Rename Local Variable (visual selection/variable under the cursor
    • ,rriv :RRenameInstanceVariable - Rename Instance Variable (visual selection)
    • ,rem :RExtractMethod - Extract Method (visual selection)

"Support" and minor plugins

  • pathogen 1.2 (github)

    Allows to separate each plugin into its own subdirectory. ~/.vim/bundles directory is used as the common root for all the plugins.

    Already configured

  • textobj-user (github)

    Support for user-defined text objects

  • misc-lang-settings

    ts/sw/et settings for various filetypes

  • endwise ( (github)

    Wisely add "end" in ruby, endfunction/endif/more in vim script, etc

  • delimitMate ( (github)

    auto-completion for quotes, parens, brackets, etc. in insert mode.

  • showmarks 2.2 (

    Visually shows the location of marks.

  • unimpaired (github)

    pairs of assorted bracket maps

  • repeat ( (github)

    Use the repeat command "." with supported plugins

Syntax plugins


The following is a list of commands and key bindings that I personally find interesting stored for easy refreshing my memory of them. there is no much 'system' to it, just randomly chosen bits of vim goodness.

  • ga print ascii value of character under the cursor
  • zt scroll cursor line to top
  • zz scroll cursor line to center
  • zb scroll cursor line to bottom
  • gv reselect last selection
  • ci change inside delimiters
  • di delete inside delimiters
  • @@ execute last macro
  • "xyy copy line into x register (replace x with any other)
  • "xp paste from register x
  • :reg Display the contents of all numbered and named registers.