I’ve been using some version of the same Vimrc file for about 20 years now, when a colleague gave me a copy of his Vimrc with a bunch of useful functions which I’ve tweaked over the years. I have no idea how old the Vimrc file was before I got it. I take pride in maintaining my version of the eternal Vimrc flame, and I still use Vim almost daily.

However, the file has been getting shorter as I remove old versions of functions which don’t make sense any more. The bundling support in Vim is the way to go anymore, I used to use Pathogen, but now I use Vundle, and the rest of the Vimrc is shrinking.

To install, you do have to run this, which puts Vundle in your bundle directory:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

I’ve got this at the top of my Vimrc file, to tell Vundle which packages I want.

call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'vim-scripts/indentpython.vim'
"Plugin 'tmhedberg/SimpylFold'
Plugin 'scrooloose/syntastic'
Plugin 'kien/ctrlp.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'jnurmine/Zenburn'
Plugin 'dhruvasagar/vim-table-mode'
Plugin 'scrooloose/nerdtree'

call vundle#end()
filetype plugin indent on
…

Now, I start Vim and run:

:PluginInstall

This will go and download all of the packages and properly install them. Done! Vundle can also check for updates, so I don’t have an outdated version of the function for 20 years. This is also pretty portable when I set up Vim on other computers.