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