Я использую Syntastic в Vim, и он выделяет новый синтаксис Ruby как ошибки. Например, если я использую обязательные аргументы ключевого слова (представленные в Ruby 2.1), вот так:
def distance(from:, to:)
# whatever
end
... он выделяет строку определения и говорит "неожиданный", ".
Как я могу заставить его распознавать это как правильный синтаксис Ruby? Я уже обновил ~/.vim/syntax/ruby.vim
.
~/.vim/syntax/ruby.vim
имеет ничего общего с проверкой синтаксиса в файлах; это для синтаксической подсветки . См. Robots.thoughtbot.com/writing-vim-syntax-pluginsОтветы:
Укажите исполняемый файл ruby для Syntastic
Syntastic вызывает
ruby -c
для проверки синтаксиса файла, поэтому ошибки, которые он показывает, зависят от того, какую версию ruby он использует.Вы можете указать на тот, который вы хотите использовать следующим образом:
ПРИМЕЧАНИЕ: на более новых версиях Syntastic:
$ type ruby
скажет вам, где находится ваш текущий исполняемый файл Ruby. Установщики Ruby имеют свои собственные соглашения о том, где они размещают свои двоичные файлы. Например:~/.rubies
и определенные версии в пути, подобные~/.rubies/ruby-2.2.0/bin/ruby
~/.rvm/rubies
и определенные версии в пути, подобные~/.rvm/rubies/ruby-2.2.0/bin/ruby
источник
let g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
let g:syntastic_ruby_exec = '~/.rbenv/shims/ruby'
так, чтобы при переключении версий ruby он автоматически поднимался, я думаю.system("rbenv which ruby")
в своем .vimrcПри использовании терминала 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
и теперь все работает, и мои пути в mvim верны. Это также должно решить проблему обновления syntastic при установке новой версии ruby через rvm.источник
Для проекта Rails.
.ruby-version
файле в корне проекта.Syntastic выполнит проверку синтаксиса с указанной версией ruby.
источник