So, remember that long blog post I wrote around Christmas about
using the Janus project to get a default set of Vim plugins up and
running quickly, and about how I’d had some problems integrating it with
It turns out, as of the 10th of January, that won’t be much of a problem
anymore. Yehuda and Carl announced that they’ve re-written Janus, to
make it much easier to extend and configure, and they’ve also removed
the Command-T plugin with the Ruby dependency that was causing me so
If you installed the project after January 10th, then you have the
latest version and any problems should be reported on the issue tracker.
If you installed before then, follow the appropriate set of instructions
on the project page.
I love the open web – don’t forget that bug reporting is a useful way to
give back. And if you’re still having trouble with RVM, they’ve got some
suggestions on the Wiki.
Listening to The Changelog introduced me to Janus, a collection of
Vim plugins all wrapped up in an easy to install package. It’s open
source, and socially hosted on Github.
The wonderful thing about Janus is that after 13 years of Vim use, it’s finally introduced me to the world of Vim plugins. This is something I clearly couldn’t/certainly didn’t discover easily by myself. The project as a whole isn’t without some odd quirks, but these are largely down to the design goal of being a Vim-for-beginners-who-come-from-TextMate.
This TextMate focus means two things:
they activate keybindings and some plugins only on detecting a visual
Vim – ie GVim or MacVim.
Important plugins are those that replicate TextMate behaviour.
As a result, I have temporarily switched to using MacVim and GVim to
experience the plugins at full strength. However when I first did this on OS X, I found a problem.
I pulled in MacVim from Macports, and Janus from Github. When I
fired it up:
Vim: Caught deadly signal SEGV
Ah. Confused, I tried running plain vim from the command line – and it
didn’t crash out. Hmm. Tricky.
It turns out this was caused by Command-T and MacVim (or Vim more
interacting. Command-T is a useful plugin that replicates TextMate’s open-a-file-by-typing-its-name behaviour. It uses the Ruby interpreter in Vim to provide this functionality. And it turns out that if the Ruby versions used to compile Command-T is different to the version used to compile Vim, you’re a bit screwed. Because Fink and Homebrew install precompiled binaries, and you’ll need to be using the default Ruby install that came with your version of OS X. The Macports install sensibly uses the version of Ruby you installed through it. In all three of these cases, you probably won’t encounter the above problem, especially if you don’t use Ruby as a programming language.
However, I’m a Rubyist, and use Wayne Seguin’s RVM to
manage my Rubies, and thus I was in a bit of trouble. My MacVim
was installed using MacPort’s Ruby, and so MacVim was crashing. Vim
wasn’t crashing, because Command-T isn’t loaded by Janus’ vimrc file,
only its gvimrc.
Actually, this can happen to any of the plugins that use the linked
interpreters: Python, Perl or Ruby, if the interpreter moves. RVM is the
source of a lot of this pain though. Just search for the above string in Google, as I did.
The Self Compilation Solution
To solve this, I ended up compiling MacVim from source. I actually struck another problem here, to do with Macports. Essentially, the configure step mentioned in the Github wiki doesn’t take account of the Macport library locations, and so the build fails with an error about iconv. As usual, the Internet comes to the rescue.
I now have a shiny working MacVim install on two machines, after a wee
bit of digging into various helper projects. Happy days.