Saya menggunakan Sintaksis dalam Vim, dan menyoroti sintaksis Ruby yang lebih baru sebagai kesalahan. Misalnya, jika saya menggunakan argumen kata kunci yang diperlukan (diperkenalkan di Ruby 2.1), seperti ini:
def distance(from:, to:)
# whatever
end
... itu menyoroti garis definisi dan mengatakan "tak terduga ','".
Bagaimana saya bisa mengenalinya sebagai sintaksis Ruby yang valid? Saya sudah memperbarui ~/.vim/syntax/ruby.vim
.
~/.vim/syntax/ruby.vim
tidak ada hubungannya dengan memeriksa sintaks dalam file; itu untuk sintaks penyorotan . Lihat robots.thoughtbot.com/writing-vim-syntax-pluginsJawaban:
Tentukan ruby yang dapat dieksekusi untuk Syntastic
Panggilan sintaksis
ruby -c
untuk memeriksa sintaksis suatu file, sehingga kesalahan yang ditampilkan tergantung pada versi ruby mana yang digunakan.Anda bisa mengarahkannya ke yang ingin Anda gunakan seperti ini:
CATATAN: pada versi Syntastic yang lebih baru:
$ type ruby
akan memberi tahu Anda di mana Ruby Anda saat ini dapat dieksekusi. Pemasang Ruby memiliki konvensi sendiri tentang di mana mereka menempatkan binari mereka. Misalnya:~/.rubies
dan versi tertentu di jalur seperti~/.rubies/ruby-2.2.0/bin/ruby
~/.rvm/rubies
dan versi tertentu di jalur seperti~/.rvm/rubies/ruby-2.2.0/bin/ruby
sumber
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'
sehingga ketika versi ruby berganti itu akan secara otomatis mengambilnya, saya pikir.system("rbenv which ruby")
.vimrcMenggunakan terminal macvim Saya juga punya masalah ini, yang diperparah oleh fakta bahwa saya menggunakan zsh, yang karena beberapa alasan tidak menghormati rvm biner yang saya berikan sintaksis. Saya menyadari bahwa jalur saya yang salah ketika berjalan
!echo $PATH
di terminal macvim, saya memiliki beberapa jalur sistem yang ditambahkan ke atas yang tidak ada di shell reguler saya masih menyebabkan MRI default dimuat.Untuk memperbaiki ini, saya tidak perlu menentukan pemeriksa sintaks sama sekali di .vimrc saya, namun saya harus memperbarui cara zsh memulai. Menggunakan utas di: http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html Saya akhirnya hanya menjalankan
sudo mv /etc/zshenv /etc/zprofile
dan sekarang semuanya berfungsi dan jalur saya sudah benar dalam mvim. Ini juga harus menyelesaikan masalah memperbarui sintaksis ketika menginstal versi ruby baru melalui rvm.sumber
Untuk proyek Rails.
.ruby-version
file di root proyek.Sintaks akan melakukan pemeriksaan sintaks dengan versi ruby yang ditentukan.
sumber