…or, I suppose, other Linux-es…Linuxi…Linux distributions.

Many of the Vim features on which I’ve come to depend simply aren’t available in Vim pre-7.3.3. That’s fine if I’m working on an OS that cares about having up-to-date software like Ubuntu or OSX; however, it ain’t so great if I’m working on a shared host that uses CentOS five point something dumb because the hosting-providers weren’t hugged as children (I’d guess).


For installing on Ubuntu and additional source install tips see this little post on the YouCompleteMe wiki

New OS, Old Repo

The only thing worse than working on an old OS, with an old version of Vim is working on a new OS with an old version of Vim. I recently disovered that the yum-installable Vim (vim-enhanced) version on CentOS 6.3 is v.7.2.411—WTF CentOS? What’s your deal, guy?

Some plugins that depend on version 7.3:

And, really, those are just the plugins that fail loudly for me. Like the ones that vomit, “Hey, WTF, guy?” to stdout every rootin’ tootin’ time I fire up Vim. There would likely be other functionality that I’d loose by not using Vim 7.3.3+.

I don’t have to take this kind of guff from CentOS. No. I think that, instead, I’m going to do something awesome.

Compiling Vim from source means you don’t have to get pushed around by crummy distro repos and you look like a 1970s-era Fred Williams-level badass…so…bonus points…

Retrieving Vim source

Vim keeps its source in a Mercurial repo on googlcode so you need to download it. To do that you should have Mercurial installed (which you can, somewhat ironically, install from via yum yum install mercurial). You should switch to the root user for this install and for your sanity so use su or sudo bash:

$ sudo bash
$ cd /usr/local/src/
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim

Configuration options

There are quite a few configuration options (which you can view by running ./configure –help in your newly created vim directory)—with respect to Vim installs I support going nuclear. Even at it’s most ginormous Vim will still be a small install relative to other IDEs—Vim is my primary editor and IDE, so I’m down to do it big. I’m also going to use the /usr prefix so that Vim is installed system-wide.

$ ./configure --prefix=/usr --with-compiledby="Tyler the Compiler" --with-features=huge --enable-rubyinterp --enable-pythoninterp

make && make install

Srsly, that’s it—

make && make install

Congrats! You’re one bad mother Vim compiler.

So… which vim? /usr/bin/vim. Boom. Yeah, that’s right.