Economy of Effort

Twitter LinkedIn GitHub Mail RSS

Segfault After Building Command-T Plugin for Vim

The Command-T plugin provides TextMate-style “go to file” searching for Vim.

It’s a very nice plugin. Part of the installation process involves building/compiling the plugin, as it is partially written in C.

I have twice encountered a situation where my Gvim would segfault when trying to launch, after having built the plugin.

legion@legion-desktop:
~/.vim/bundle/command-t$ gvim
Vim: Caught deadly signal SEGV
Vim: Finished.
Segmentation fault

The problem was due to building the plugin using a different version of Ruby than the one that Gvim was built with. For me, this is because I was using the Gvim that comes with my Linux distribution (Ubuntu), but not the Ruby that comes included in the distro. Instead, I am running RVM and defaulting to a more current Ruby interpreter in my Bash environment.

The answer, for me, was to switch to the “system” Ruby in RVM, and then rebuild the plugin:

rvm --system
rake make

I also had this happen on my Mac laptop. Same basic situation: mismatch between the version of Ruby that my copy of MacVim was built with, and the version I was using in RVM. In that case, I believe I installed a new Ruby with RVM, one that matched the version that the particular MacVim build was built with.

To find out which version of Ruby that Vim/Gvim/MacVim was built with, use the command:

:ruby p RUBY_VERSION

Then, if you don’t already have that version of Ruby in your OS, you can build a matching one from within RVM, and use that one to build the plugin.

Comments