Есть ли способ использовать Gems во встроенном Ruby Vim?

Я пытаюсь использовать tinder драгоценный камень изнутри 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 не распаковывает зависимости гема, поэтому не может найти, например, 'faraday'. Возможно, я мог бы рекурсивно распаковать?

У кого-нибудь есть мысли по этому вопросу?

Я много гуглял и смотрел на источник таких проектов, как Vmail, но, насколько я могу судить, никто не использует Gems в Ruby Vim. Это кажется ужасным позором.

Я почти уверен, что собственные расширения gem никогда не сработают, что бы я ни пытался, но я был бы очень рад, если бы мне потребовались только чистые камни Ruby.

Большое спасибо.

1 ответ

Решение

После долгой охоты все довольно просто.

Самый простой способ - скомпилировать Vim для версии Ruby версии 1.9 или выше. Vim будет использовать тот, который Ruby будет первым в вашем пути загрузки при компиляции.

Тогда вам просто нужно установить gems обычным способом для версии, которую вы скомпилировали.

Драгоценные камни будут доступны в вашем пути загрузки по умолчанию в 1.9 и далее, потому что они внесли некоторые изменения в способ автоматической загрузки rubygems.

Другие вопросы по тегам