加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

有没有办法在Vim的“嵌入式”Ruby中使用Gems?

发布时间:2020-12-15 20:57:09 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Vim内部的火种宝石.我希望能够写入Vim缓冲区,所以我需要使用Vim的嵌入式 Ruby:ruby而不是外部调用!ruby. 我在命令行上运行gem install tinder没有问题,但是嵌入式ruby似乎没有在其加载路径上的相关目录才能够要求它. 我试过通过尝试以下方式
我正在尝试使用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自动加载的方式进行了一些更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读