9

Я использую Syntastic в Vim, и он выделяет новый синтаксис Ruby как ошибки. Например, если я использую обязательные аргументы ключевого слова (представленные в Ruby 2.1), например:

def distance(from:, to:)
  # whatever
end

... он выделяет строку определения и говорит "неожиданный", ".

Как я могу заставить его распознавать это как правильный синтаксис Ruby? Я уже обновил ~/.vim/syntax/ruby.vim .

3 ответа3

9

Укажите исполняемый файл ruby для Syntastic

Syntastic вызывает ruby -c для проверки синтаксиса файла, поэтому отображаемые ошибки зависят от того, какую версию ruby он использует.

Вы можете указать на тот, который вы хотите использовать, как это:

let g:syntastic_ruby_exec = 'path/to/ruby/executable'

ПРИМЕЧАНИЕ: на более новых версиях Syntastic:

let g:syntastic_ruby_mri_exec = 'path/to/ruby/executable'

$ type ruby сообщит вам, где находится ваш текущий исполняемый файл Ruby. Установщики Ruby имеют свои собственные соглашения о том, где они размещают свои двоичные файлы. Например:

  • ruby-install помещает установки ruby в ~/.rubies и определенные версии по таким путям, как ~/.rubies/ruby-2.2.0/bin/ruby
  • RVM помещает инсталляции ruby в ~/.rvm/rubies и в определенных версиях по таким путям, как ~/.rvm/rubies/ruby-2.2.0/bin/ruby
4

При использовании терминала Macvim у меня также была эта проблема, которая усугублялась тем, что я использовал zsh, который по какой-то причине не соблюдал двоичный файл rvm, который я дал синтетическому. Я понял, что мои пути неверны при запуске !echo $PATH в терминальном macvim, к вершине добавлено несколько системных путей, которых не было в моей обычной оболочке, которые по-прежнему вызывали загрузку MRI по умолчанию.

Чтобы это исправить, мне вообще не нужно было указывать проверку синтаксиса в моем .vimrc, однако мне пришлось обновить способ запуска zsh. Используя поток по адресу: http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html В итоге я просто запустил sudo mv /etc/zshenv /etc/zprofile и теперь все работает и мои пути верны в мвим. Это также должно решить проблему обновления syntastic при установке новой версии ruby через rvm.

0

Для проекта Rails.

  • Установите версию ruby в .ruby-version в корневом каталоге проекта.
  • И запустите свой vim из корня проекта.

Syntastic выполнит проверку синтаксиса с указанной версией ruby.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .