This is a distribution of vim plugins and tools intended to be run on top of VIM. It is a good starting point for anyone intending to use VIM for development.
Unlike traditional VIM plugin structure, which similar to UNIX throws all files into common directories, making updating or disabling plugins a real mess, spf13-vim uses [pathogen](http://www.vim.org/scripts/script.php?script_id=2332) to have a well organized vim directory (Similar to mac's app folders).
Great care has been taken to ensure that each plugin plays nicely with others, and optional configuration has been provided for what we believe is the most efficient use.
Lastly (and perhaps, most importantly) It is completely cross platform. It works well on Windows, Linux and OSX without any modifications or additional configurations. If you are using [MacVim](http://code.google.com/p/macvim/) or Gvim additional features are enabled. So regardless of your environment just clone and run.
spf13-vim contains a curated set of popular vim plugins, colors, snippets and syntaxes. Great care has been made to ensure that these plugins play well together and have optimal configuration.
For instance, if the cursor was inside `"foo bar"`, you could type
`cs"'` to convert the text to `'foo bar'`.
There's a lot more; check it out at `:help surround`
### NERDCommenter
NERDCommenter allows you to wrangle your code comments, regardless of
filetype. View `help :NERDCommenter` for all the details.
**QuickStart** Toggle comments using `<Leader>c<space>` in Visual or Normal mode.
**Customizations**: spf13-vim binds command-/ (`<D-/>`) to toggle comments.
### SuperTab
In insert mode, start typing something and hit `<TAB>` to tab-complete
based on the current context.
**QuickStart** Hit the tab key in Insert mode.
### SnipMate
Snipmate provides snippet support similar to TextMate.
A snippet is a piece of often-typed text that you can insert into your
document using a trigger word followed by a <tab>.
Spf13-vim ships with a very large library of snippets for dozens of languages.
For instance, in a C file using the default installation of snipMate.vim, if
you type "for<tab>" in insert mode, it will expand a typical for loop in C: >
for (i = 0; i <count;i++){
}
To go to the next item in the loop, simply <tab> over to it; if there is
repeated code, such as the "i" variable in this example, you can simply
start typing once it's highlighted and all the matches specified in the
snippet will be updated. To go in reverse, use <shift-tab>.
**QuickStart** Type a keyword (try something like `class`) and hit tab in insert mode.
### Git Support (Fugitive)
Fugitive adds pervasive git support to git directories in vim. For more
information, use `:help fugitive`
Use `:Gstatus` to view `git status` and type `-` on any file to stage or
unstage it. Type `p` on a file to enter `git add -p` and stage specific
hunks in the file.
Use `:Gdiff` on an open file to see what changes have been made to that
file
**QuickStart** :Gstatus (in command mode)
### PIV (PHP Integration for VIM)
The most feature complete and up to date PHP Integration for Vim with proper support for PHP 5.3+ including latest syntax, functions, better fold support, etc.
PIV provides
* PHP 5.3 support
* Auto generation of PHP Doc (,pd on (function, variable, class) definition line)
* Autocomplete of classes, functions, variables, constants and language keywords
* Better indenting
* Full PHP documentation manual (hit K on any function for full docs)
### DelimitMate
DelimitMate provides automatic closing of quotes, parenthesis, brackets,
etc.; besides some other related features that should make your time in insert
mode a little bit easier.
Most of the features can be modified or disabled permanently, using global
variables, or on a FileType basis, using autocommands. With a couple of
exceptions and limitations, this features don't brake undo, redo or history.
**QuickStart** Enabled by default, just works. see :help delimitmate for options
### Ack.vim
Ack.vim uses ack to search inside the current directory for a pattern.
You can learn more about it with :help Ack
**Customizations**: spf13-vim rebinds command-shift-f (`<D-F>`) to bring up
`:Ack `.
### Align
Align lets you align statements on their equal signs, make comment
boxes, align comments, align declarations, etc.
*`:5,10Align =>` to align lines 5-10 on `=>`'s
### CTags
spf13-vim includes the TagList plugin, which binds `:Tlist` to an overview
panel that lists all ctags for easy navigation.
**Customizations**: spf13-vim binds `<Leader>rt` to the ctags command to
update tags.
**Note**: For full language support, run `brew install ctags` to install
exuberant-ctags.
**Tip**: Check out `:help ctags` for information about VIM's built-in
ctag support. Tag navigation creates a stack which can traversed via
`Ctrl-]` (to find the source of a token) and `Ctrl-T` (to jump back up
one level).
### EasyTags
Automated tag generation and syntax highlighting in Vim
**Note**: Depends on exuberant Ctags. On OSX, For full language support, run `brew install ctags` to install
exuberant-ctags. If you don't have ctags support disable this plugin.
**QuickStart** CTRL-] while the cursor is on a keyword (such as a function name) to jump to it's definition.
## Additional Syntaxes
spf13-vim ships with a few additional syntaxes:
* Markdown (bound to \*.markdown, \*.md, and \*.mk)
* Twig
* Git commits (set your `EDITOR` to `mvim -f`)
## Color schemes
spf13-vim includes [spf13 vim color pack](https://github.com/spf13/vim-colors/):