ruby - 有没有办法在 Vim 的 'embedded' Ruby 中使用 Gems?

标签 ruby gem vim load-path

我正在尝试使用 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 并要求一个绝对路径,这似乎确实有效,但解压并没有解压 gem 的依赖项,因此它找不到例如“faraday”。也许我可以递归解包?

有人对这个问题有什么想法吗?

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

我很确定 gem native 扩展永远不会工作,无论我尝试什么 - 但我会非常高兴能够只需要纯 Ruby gems。

非常感谢。

最佳答案

找了半天,其实很简单。

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

然后你只需要通过常规方式为你编译的版本安装gems。

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

关于ruby - 有没有办法在 Vim 的 'embedded' Ruby 中使用 Gems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005800/

相关文章:

ruby-on-rails - Rails session 和 SiteMinder/SSO

vim:删除字符,不包含

c# - 使用Vim作为C#编辑器,面临一些问题

ruby - 将随机数生成器偏置为偏差为 b 的某个整数 n

ruby - Ruby 中未使用的正则表达式捕获

ruby-on-rails - Rails (4.2.0) 服务器对浏览器请求无响应

ruby-on-rails - 即使使用 bundle exec 也会出现 "You have already activated"消息

ruby - bundler 在哪里存储 gem ?

ruby-on-rails - Monkey(也许?)在我的 Rails 应用程序中修补一个 Gem

linux - 在 Vim 中打开最后一个命令的输出