Проблема с плагином 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
Ответы
Ответ 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
.