5

我在 ubuntu 11.10 上安装了 vim-gnome 并且可以正常工作。使用 vundle 并安装了 seral 软件包,一切正常。

我已经安装了 command-t,但在编译 C 扩展之前它不会起作用。阅读手册这是解决方案。

  rake make

对我来说,位置实际上是:

~/.vim/bundle/command-t

无论如何,所以我关闭了 rvm 并按照 command-t 帮助指南中的建议安装了系统 1.8。我检查了文档,command-t 错误的最常见原因是针对错误的 ruby​​ 进行编译。

所以我找到了这个命令来检查编译的版本。

renshaw@renshaw-TravelMate-5740G:~/.vim/bundle/command-t$ ldd `which vim` | grep ruby
libruby1.8.so.1.8 => /usr/lib/libruby1.8.so.1.8 (0x00007f913932c000)

所以我为 ruby​​ 1.8 安装了 rake 并用 rake make 编译

renshaw@renshaw-TravelMate-5740G:~/.vim/bundle/command-t$ sudo rake make
/usr/bin/ruby1.8 extconf.rb
checking for ruby.h... yes

然后它就开始编译了。

但是启动 gvim 并为 command-t 运行 \t 和

Vim: Caught deadly signal SEGV
Vim: Finished.
Segmentation fault

如何在 ubuntu 11.10 上运行 command-t?

更新。

从源代码构建 Gvim 使用

hg clone https://vim.googlecode.com/hg/ vim
cd vim
sudo ./configure --enable-rubyinterp=yes --enable-pythoninterp=yes --enable-gui=gtk2
make 
make install

vim --version | grep ruby

vim version 命令返回正确的 ruby​​ 支持是针对我安装的系统 1.8 构建的,但在使用命令 T 时它仍然是 SEGV。

所以找到并尝试了这个

cd ~/.vim/ruby/command-t
/usr/bin/ruby extconf.rb
make

这也失败了。然后,我将其从以前的支持票中添加到 bashrc。

vim() {
    (unset GEM_PATH GEM_HOME; command vim "$@")
}
4

4 回答 4

13

I had similar problems when using the rake task. I solved it by compiling the extension myself.

From the command-t plugin directory:

rvm use system    
cd ruby/command-t
ruby extconf.rb
make
sudo make install
于 2012-01-29T11:55:17.230 回答
2

Ubuntu 13.04 也有同样的问题。在尝试了不同的组合之后,这对我有用。

我不喜欢从源代码构建,所以我使用了 vim-nox 包:

sudo apt-get install vim-nox

现在,当使用 Ruby 1.8.7 或 Ruby 2.0.0 编译 command-t 时,会捕获 SEGV 信号。为了试验不同的 Ruby 版本,我安装了rvm

curl -L https://get.rvm.io | bash

然后我使用 Ruby 1.9.1 编译了 command-t 扩展:

rvm install 1.9.1
rvm use 1.9.1
cd ~/.vim/bundle/command-t/ruby/command-t
ruby extconf.rb
make

总结一下:vim-nox + ruby​​ 1.9.1 = vim command-t 在 Ubuntu 13.04 上运行良好。

于 2013-10-04T17:34:54.010 回答
1

我按照这些说明在 Ubuntu 11.10 上运行它并使用 Ruby 1.9.2p290 构建 Vim 和 Command-T -

sudo apt-get install python-dev ruby-dev mercurial ncurses-dev liblua5.1-0-dev lua5.1

rvm use 1.9.2

hg clone https://vim.googlecode.com/hg/ ~/vim 
cd ~/vim
hg update -C v7-3-154
./configure --with-features=huge  --disable-largefile \
        --enable-perlinterp   --enable-pythoninterp \
        --enable-rubyinterp   --enable-gui=gtk2 \      
make
sudo make install

然后按照我的 Pathogen的Command-T 安装说明进行操作。

于 2012-04-21T06:28:38.630 回答
0

这就是我解决这个问题的方法(我相信它是由版本不匹配引起的):

我安装了旧版本的 vim(来自 apt 使用 debian)。旧版本的 vim 使用旧的 1.9.x 版本的 Ruby 库。我根据https://github.com/wincent/Command-T中的指南编译了 command-t 。我在编译过程中使用了 ruby​​ 2.1.x。当我这样做时,我得到了 SEGV。我相信这是由于我在编译 command-t 时使用的 Ruby 和正在使用的 Ruby vim 之间的版本不匹配造成的。所以解决方法是针对编译 command-t 的相同 Ruby 库编译 vim。当我使用“apt-get install vim”升级我的 vim 时,一切都开始工作了。现在新版本的 vim 使用了与包管理器相同的新 Ruby 库。

于 2014-08-05T17:36:19.380 回答