我正在尝试使用Vim内部的火种宝石.我希望能够写入Vim缓冲区,所以我需要使用Vim的嵌入式
Ruby:ruby而不是外部调用!ruby.
我在命令行上运行gem install tinder没有问题,但是嵌入式ruby似乎没有在其加载路径上的相关目录才能够要求它.
我试过通过尝试以下方式来操纵加载路径:
:ruby `gem env gempath`.strip.split(':').each { |p| $:.unshift(p) }
……但收效甚微.
我也尝试过类似的事情:
Gem.path.unshift ...
……但是,再一次,收效甚微.
我已经尝试解压缩Tinder并需要一个绝对路径,这看起来似乎有用,但是unpack并没有解压缩gem的依赖关系,所以它找不到’faraday’,例如.也许我可以递归解压缩?
有没有人对这个问题有任何想法?
我已经搜索了很多东西并查看了Vmail等项目的来源,但据我所知,没有人在Vim的Ruby中使用Gems.这似乎是一个可怕的耻辱.
我很确定宝石原生扩展将无法工作,无论我尝试什么 – 但我很高兴能够要求纯Ruby宝石.
非常感谢.
最佳答案 经过很长一段时间的狩猎,实际上非常简单.
最简单的方法是针对1.9或更高版本的Ruby编译Vim.编译时,Vim将使用加载路径中的第一个Ruby.
然后你只需要通过常规方法为你编译的版本安装gem.
默认情况下,在1.9及更高版本中,宝石将在您的加载路径中可用,因为它们对rubygems自动加载的方式进行了一些更改.