我在ubuntu 11.10上安装了vim-gnome并正常工作。使用vundle并安装了seeral软件包。
我已经安装了command-t但是在编译C扩展之前它不会起作用。阅读手册这是解决方案。
rake make
对我来说,位置实际上是:
~/.vim/bundle/command-t
无论如何,所以我按照命令-t帮助指南中的建议关闭了rvm并安装了系统1.8。 我检查了文档,命令错误的最常见原因是编译错误的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并运行命令t和
的\ tVim: Caught deadly signal SEGV
Vim: Finished.
Segmentation fault
如何在ubuntu 11.10上运行命令?
更新
使用
从源代码构建Gvimhg 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 "$@")
}
答案 0 :(得分:13)
使用rake任务时遇到了类似的问题。我通过自己编译扩展来解决它。
从command-t插件目录:
rvm use system
cd ruby/command-t
ruby extconf.rb
make
sudo make install
答案 1 :(得分: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编译命令-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上运行良好。
答案 2 :(得分:1)
我在these instructions之后使用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
然后关注病原体的Command-T installation instructions,就我而言。
答案 3 :(得分:0)
这就是我解决这个问题的方法(我相信它是由版本错配引起的):
我安装了旧版本的vim(来自apt使用debian)。旧版本的vim使用的是旧版1.9.x版本的Ruby库。我根据https://github.com/wincent/Command-T中的指南编译了命令-t。我在编译过程中使用了ruby 2.1.x.当我做的时候我得到了SEGV。我相信它是由我在编译command-t时使用的Ruby与Ruby vim正在使用之间的版本不匹配引起的。因此修复是针对编译命令-t的相同Ruby库编译vim。当我使用" apt-get install vim"升级我的vim时一切都开始奏效了。现在,新版本的vim使用了包管理器附带的新Ruby库。