Syntastic'in daha yeni Ruby sözdizimini tanımasını nasıl sağlayabilirim?


10

Vim'de Syntastic kullanıyorum ve hata olarak yeni Ruby sözdizimini vurgular. Örneğin, gerekli anahtar kelime bağımsız değişkenlerini (Ruby 2.1'de tanıtıldı) kullanırsam, şöyle:

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

... tanım satırını vurgular ve "beklenmedik", "" der.

Bunu geçerli Ruby sözdizimi olarak tanımasını nasıl sağlayabilirim? Zaten güncelledim ~/.vim/syntax/ruby.vim.


Not: dosyalardaki sözdizimini kontrol etmekle ~/.vim/syntax/ruby.vimhiçbir ilgisi yoktur ; sözdizimi vurgulamak içindir . Bkz. Robots.thoughtbot.com/writing-vim-syntax-plugins
Nathan Long

Yanıtlar:


9

Syntastic için ruby ​​yürütülebilir dosyasını belirtin

ruby -cBir dosyanın sözdizimini kontrol etmek için sözdizimi çağrıları , bu nedenle gösterdiği hatalar hangi ruby ​​sürümünü kullandığına bağlıdır.

Bunu, şu şekilde kullanmak istediğinize işaret edebilirsiniz:

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

NOT: Syntastic'in daha yeni sürümlerinde:

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

$ type rubygeçerli Ruby çalıştırıcınızın nerede olduğunu söyleyecektir. Ruby montajcılarının ikili dosyalarını nereye yerleştirdiklerine dair kendi sözleşmeleri vardır. Örneğin:

  • ruby-install , ruby ​​kurulumlarını ~/.rubiesve belirli sürümleri~/.rubies/ruby-2.2.0/bin/ruby
  • RVM , ruby ​​kurulumlarını ~/.rvm/rubiesve belirli sürümleri~/.rvm/rubies/ruby-2.2.0/bin/ruby

Bilginize: rvm kullanıyorsanız, bu olurdulet g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
Ben

@Ben iyi bir nokta - güncellenmiş cevap
Nathan Long

3
Sözdiziminin yeni sürümü için:let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
RantriX

1
Eğer rbenv kullanıyorsanız let g:syntastic_ruby_exec = '~/.rbenv/shims/ruby', ruby ​​versiyonları değiştiğinde otomatik olarak alması gerektiğini düşünüyorum.
Thermatix

Nice @Thermatix .. system("rbenv which ruby")Benim .vimrc
rthbound

4

Ben de nedense hangi, zsh kullanılarak gerçeği edildiğinde ortaya çıktı bu sorunu vardı terminali macvim kullanarak değil ben syntastic verdi ikili RVM saygı. !echo $PATHTerminal macvim'de çalışırken yollarımın yanlış olduğu yerlerde, normal kabuğumda olmayan ve hala varsayılan MRI'nın yüklenmesine neden olan birkaç sistem yolu olduğunu fark ettim.

Bunu düzeltmek için, benim .vimrc'de sözdizimi denetleyicisini belirtmeme gerek yoktu, ancak zsh'ın nasıl başladığını güncellemek zorunda kaldım. İş parçacığını kullanarak: http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html Basitçe çalıştım sudo mv /etc/zshenv /etc/zprofileve şimdi her şey çalışıyor ve yollarım mvim'de doğru. Bu, rvm aracılığıyla yeni bir ruby ​​sürümü yüklerken sözdizimini güncelleme sorununu da çözmelidir.



Rastgele soru - "terminal macvim" sadece vim değil mi? Terminalde Macvim kullanmanın düz vim kullanmanın avantajlarından ne elde edersiniz?
Nick

0

Raylar projesi için.

  • Ruby sürümünü .ruby-versionproje kökündeki bir dosyada ayarlayın .
  • Ve viminizi proje kökünden başlatın.

Sözdizimi, belirtilen yakut sürümüyle sözdizimi kontrolünü yapar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.