【问题标题】:Is there a way to use Gems in Vim's 'embedded' Ruby?有没有办法在 Vim 的“嵌入式”Ruby 中使用 Gems?
【发布时间】:2012-12-22 19:21:01
【问题描述】:

我正在尝试使用 Vim 内部的 tinder gem。我希望能够写入 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 的依赖项,因此它无法找到例如“法拉第”。也许我可以递归解包?

有人对这个问题有任何想法吗?

我在 Google 上搜索了很多,并查看了 Vmail 等项目的来源,但据我所知,没有人在 Vim 的 Ruby 中使用 Gems。这似乎是一种可怕的耻辱。

我很确定 gem 原生扩展将永远无法工作,无论我尝试什么 - 但我很高兴能够需要纯 Ruby gem。

非常感谢。

【问题讨论】:

    标签: ruby gem vim load-path


    【解决方案1】:

    折腾了半天,其实很简单。

    最简单的方法是针对 1.9 或更高版本的 Ruby 编译 Vim。编译时,Vim 将使用加载路径中最先出现的 Ruby。

    那么你只需要通过常规方式为你编译的版本安装gem即可。

    在 1.9 及更高版本中,默认情况下这些 gem 将在您的加载路径中可用,因为它们对 ruby​​gems 的自动加载方式进行了一些更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2019-11-23
      • 2018-07-03
      • 2022-06-18
      • 1970-01-01
      • 2014-12-21
      • 2018-07-18
      相关资源
      最近更新 更多