spf13-vim – The Ultimate Distribution for Vim Editor

spf13-vim is a cross platform and highly customizable assortment of vim plugins and various resources for Vim, GVim and MacVim.

It works in Linux, Windows and MacOS X plus other Unix-like systems, it adheres to the traditional feel of vim as it offers present-day features such as a plugin management system, auto-complete, tags and many more.

Suggested Read: Learn Vi/Vim Editor – BEGINNER’S GUIDE

The notable plugins provided under spf13-vim include:

Vundle Plugin Manager for VIM

Vundle is an outstanding system built based on the exact principles as Pathogen, however with an integrated plugin management system that uses Git and Github.

Vundle File Manager for Vim
Vundle File Manager for Vim

NERDTree Explorer Plugin for Vim

NERDTree is a file explorer plugin that offers project drawer functionality to a user’s vim editing.

NerdTree Explorer Plugin for Vim
NerdTree Explorer Plugin for Vim

ctrlp File Finder for Vim

Ctrlp is a replacement of the Command-T plugin with a 100% vim plugin. It supports an intuitive and quick method to load files from the file system (with regex and fuzzy find), open buffers, and recently used files as well.

Ctrlp File Finder for Vim
Ctrlp File Finder for Vim

Surround Handles all the ‘”[{}]”‘ etc

Surround is a tool for handling pairs of “surroundings.” Examples of surroundings consists of parentheses, quotes, and HTML tags. These surroundings are closely related to what Vim refers to as text-objects.

Surround Deals Pairs of Surroundings in Vim
Surround Deals Pairs of Surroundings in Vim

NERDCommenter – Comment Code in Vim

NERDCommenter is a plugin that allows a user to deal with code comments, irrespective of filetype.

NerdCommenter for Commenting in Code for Vim
NerdCommenter for Commenting in Code for Vim

Syntastic Integrated Syntax Checking for Vim

Syntastic is a syntax checking plugin that executes buffers via external syntax checkers while they are saved and opened. In case any syntax errors are detected, a notification is sent to the user, therefore, the user does not have to compile their code or execute their script to find them.

Syntastic integrated syntax checking
Syntastic Syntax Checking for Vim

Numbers.vim – Add Line Numbers for Vim

Numbers.vim is a plugin interchanges between relative numbering (normal mode) and absolute numbering (insert mode) depending on the mode a user is in.

This enables a user to effortlessly move code around with the relative line numbers when in normal mode. Again presenting correct line numbers when writing code in insert mode.

Numbers.vim Add Line Numbers to Vim
Numbers.vim Add Line Numbers to Vim

NeoComplCache Autocomplete++ Plugin for Vim

NeoComplCache is a powerful and brilliant autocomplete plugin with extra support for snippets. It enables simulations autocompletion from the dictionary, buffer, omni-complete and snippets.

Neocomplcache Autocomplete++ Plugin for Vim
Neocomplcache Autocomplete++ Plugin for Vim

Fugitive Add Git Integration for Vim

Fugitive adds persistent Git support to Git directories in vim.

Fugitive Adds Git Integration For Vim
Fugitive Adds Git Integration For Vim

PIV Adds PHP Editing for Vim

PIV offers modern PHP Integration for Vim with better support for PHP 5.3+ including latest syntax, functions, better fold support, and so on.

PIV Adds PHP Editing for Vim
PIV Adds PHP Editing for Vim

Tabularize Align Everything in Vim

Tabularize enables a user to align statements on their equal signs and several other characters.

Tabularize Align Code in Vim
Tabularize Align Code in Vim

Tagbar Adds Tag generation and Navigation in Vim

Tagbar requires exuberant-ctags and will automatically create tags for a user’s open files. It as well presents a panel to easily navigate through tags.

Tagbar Adds Tag Generation and Navigation in Vim
Tagbar Adds Tag Generation and Navigation in Vim

EasyMotion Jump Anywhere in Vim

EasyMotion offers an interactive way to use motions in Vim.

EasyMotion Jump Anywhere in Vim
EasyMotion Jump Anywhere in Vim

Furthermore, spf13-vim:

  1. comes with a number of additional syntaxes such as Markdown, Twig and Git commits.
  2. includes solarized and spf13-vim color pack ( ir_black, molokal, peaksea).
  3. contains a complete collection of snippets for use with snipmate or NeoComplCache.

How to Install spf13-vim in Linux Systems

Before you proceed to install spf13-vim, make sure you have Git and cURL installed on your system, otherwise, run the correct commands below as per your distribution to install them:

$ sudo apt-get install git curl  [On Debian based systems]
$ yum install git curl           [On CentOS based systems]

Once both the packages has been installed, you can go further to install spf13-vim using an automatic installation script in your system and importantly backup your current Vim configuration files.

Therefore, type (or copy and paste) the command below in your terminal to run the automatic installer:

$ curl http://j.mp/spf13-vim3 -L -o - | sh

Note: If you already have spf13-vim installed, you can update to the latest version as follows:

$ cd $HOME/.spf13-vim/
$ git pull
$ vim +BundleInstall! +BundleClean +q

How To Configure and Use spf13-vim in Linux

Once you have installed it, close you current terminal and open another terminal session. spf13-vim comes with a highly optimized .vimrc configuration file that is exceptionally well organized and folds in sections, where each section is labeled and each option is commented.

The .vimrc configuration file installed by spf13-vim helps to deal with common downsides of vanilla vim such as using a single configuration file across all operating systems, corrects common typos (:W, :Q plus many more), configures included plugins, setup the interface to use vim’s features (including omnicomplete, line numbers, syntax highlighting, a proper ruler and status line etc) coupled with many more.

$ vi ~/.vimrc
spf13-vim Configuration
spf13-vim Configuration

You can add any local customizations in the files ~/.vimrc.local and ~/gvimrc.local, in case the files already exist or else create them yourself.

Take for instance, you can override the default color schemes and use peaksea as follows:

$ echo colorscheme peaksea >> ~/.vimrc.local 

The ~/.vimrc.bundles file imports the various plugins of spf13. However, to add (or remove individual bundles) your own bundles, create the file ~/.vimrc.bundles.local.

For example, the command below will add an extra bundle:

$ echo Bundle \'spf13/vim-colors\' >> ~/.vimrc.bundles.local

Below are screenshots showing spf13-vim working with different color schemes:

spf13-vim-working-example

spf13-vim-working

If you feel that spf13-vim not so useful, you can remove it completely using following commands.

$ cd ~/.spf13-vim-3/
$ ./uninstall.sh

For more information on how to use the various plugins, perform other customizations and lots more, visit http://vim.spf13.com/.

In this article, we talked about spf13-vim, a powerful collection of useful vim plugins and resources to enhance Vim, GVim and MacVim text editors.

Remember to use the feedback section below to ask any questions or offer us your thoughts about the article. You can as well give us information concerning any similar programs out there to extend Vim core functionalities or enhance its performance.

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.