Подтвердить что ты не робот

Проблема с плагином Vim Ruby

Я только что установил Vim и когда когда-либо открываю в рубиновом файле, я получаю следующие ошибки:

Error detected while processing C:\Program files (x86)\Vim\vimfiles\ftplugin\ruby.vim
line: 76
Encoding::ConverterNotFoundError: code converter not found (UTF-16LE to ASCII-8bit)
line: 93

E121 :Undefined varaible: s:ruby_path
E15: Invalid expression: s:ruby_path
line: 76

NameError: uninitialized constant Gem::Quickloader
line: 93

У меня установлен Ruby 192, и я получаю эту ошибку, даже если я обновляю файлы ruby ​​vim.

Это две строки, на которые ссылаются эти ошибки:

line 76:  ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )

line 93: let &l:path = s:ruby_path
4b9b3361

Ответ 1

Обратите внимание, что вместо редактирования файла ruby.vim вы можете просто добавить

let g:ruby_path = ':C:\ruby192\bin'

в вашем файле _vimrc (или эквивалентном для вашей платформы). Таким образом вам не нужно будет переделывать ruby.vim при его обновлении.

Ответ 2

Если вы запустите RVM и хотите его рубин по умолчанию, используйте:

let g:ruby_path = "/Users/allen/.rvm/rubies/default/bin"

Если вы установите ruby-интерпретатор в файл проекта .rvmrc, вы можете создать переменную окружения в вашем .rvmrc:

rvm [email protected] --create
export RUBY_BIN=`which ruby | sed 's/ruby$//'`

Вы можете использовать переменные среды в вашем .vimrc:

let g:ruby_path=$RUBY_BIN

(Обратите внимание, что вы также должны установить $RUBY_BIN по умолчанию в вашем .bashrc или .zshrc, поэтому это работает вне проектов .rvmrc.)

Если путь ~/.rvm/rubies/default/bin еще не существует, вам необходимо установить для системы rvm значение по умолчанию для ruby. В командной строке или приложении терминала введите:

rvm use 1.9.2 --default

используя любую рубиновую версию, которая вам нужна.

Ответ 3

Как вы установили Ruby?

Перейдите в irb и введите:

Gem.all_load_paths.uniq

который должен вернуть список путей к вашим установкам, которые Gem знает также.

Что происходит с ошибкой в ​​сообщении об ошибке и заставляет меня подозревать, что вам не хватает информации о каком-либо пути или окружении, потому что похоже, что vim не может правильно найти ваши драгоценности Ruby.

Encoding::ConverterNotFoundError - исключение основной библиотеки, поэтому часть работает, но похоже, что команда Gem не работает.

Ответ 4

Ваша проблема, вероятно, Ruby 1.9 - AFAIK Vim работает только с Ruby 1.8, поэтому вам может потребоваться понизить версию Ruby, чтобы заставить Vim работать.

Ответ 5

Я открыл файл "C:...\vim73\ftplugin\ruby.vim" и прямо перед строкой 73 или около того, где код читает:

if !exists("s:ruby_path")

Я добавил:

let s:ruby_path = 'C:\ruby192\bin'

Пока что vim кажется более счастливым в редактировании рубиновых файлов. Примечание. Я установил свой ruby ​​в каталог "C:" вместо "Program Files", чтобы получить лучший путь к ruby.exe.

Моя версия ruby.vim датирована 15 марта.

Ответ 6

Обновление до последней версии Ruby 1.9.2 (1.9.2p180 (2011-02-18) во время публикации) исправило это для меня.

Я запускал 1.9.2p132 или так, когда у меня была проблема, которая, по-видимому, была исправлена ​​в декабре 2010 года. Вы можете проверить свою текущую версию, запустив ruby -v.