One of the things that makes vim great is that it can be extended through plugins. There are plugins for more than you would expect. I have gathered together the 15 best plugins. I’ve included these plugins as part of my ultimate VIM configuration which has been featured on many sites and is hosted on github.  I’ve also begun a series of posts on some of these plugins including snipmate and NerdCommenter.

General

SuperTab

Do all your insert-mode completion with Tab.

ShowMarks

Visually shows the location of marks.
Marks are useful for jumping back and forth between interesting points in a buffer, but can be hard to keep track of without any way to see where you have placed them.  ShowMarks hopefully makes life easier by placing a sign in the leftmost column of the buffer.  The sign indicates the label of the mark and its location.
It can be toggled on and off and individual marks can be hidden(effectively removing them).

SearchComplete

Provides tab completion while inside the “/” search

Programmer

Tag List

taglist.vim : Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc).
Requires the exuberant ctags utility.

SQLComplete

Completion for the SQL language includes statements, functions, keywords, operators and database options which it draws from the current SQL syntax file in use.  Vim ships with 9 different SQL syntax files (Oracle, Informix, MySQL, SQL Anywhere, …).  You can choose different SQL dialects using the command  (see :h sql-dialects):

The NERD Commenter

A plugin that allows for easy commenting of code for many (nearly all) filetypes.

VCSCommand

VIM 7 plugin useful for manipulating files controlled by CVS, SVN, SVK and git within VIM, including committing changes and performing diffs using the vimdiff system.

Surround

All about “surroundings”: parentheses, brackets, quotes, XML tags, and more. The plugin provides mappings to easily delete, change and add such surroundings in pairs.

MatchIT

The matchit.vim script allows you to configure % to match more than just single characters. You can match words and even regular expressions. Also, matching treats strings and comments (as recognized by the syntax highlighting mechanism) intelligently.

snippetsEMU

Attempts to emulate some of the behaviour of ‘Snippets’ from the OS X editor TextMate, in particular the variable bouncing and replacement behaviour.

PHP

Smarty Syntax File

Syntax file for Smarty, the template engine for PHP.

PHP Syntax File

Syntax file for  PHP.

PHP Folding

This script can fold PHP functions and/or classes, properties with their PhpDoc,
without manually adding marker style folds ({{{ and }}}).

CheckSyntax

Check syntax when saving a file (PHP). Also supports ruby, tex, etc.

PDV- phpDocumentor for Vim

Provides really comfortable generation of phpDocumentor doc blocks for PHP

External Resources