मैं नए रूबी सिंटैक्स को पहचानने के लिए सिंथेटिक कैसे प्राप्त कर सकता हूं?


10

मैं विम में सिंथेटिक का उपयोग कर रहा हूं, और यह त्रुटियों के रूप में नए रूबी सिंटैक्स को उजागर करता है। उदाहरण के लिए, यदि मैं आवश्यक खोजशब्द तर्क (रूबी 2.1 में पेश) का उपयोग करता हूं, तो इस तरह:

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

... यह परिभाषा रेखा पर प्रकाश डालता है और "अप्रत्याशित", '' कहता है।

मैं इसे मान्य रूबी सिंटैक्स के रूप में कैसे पहचान सकता हूं? मैंने पहले ही अपडेट कर दिया है ~/.vim/syntax/ruby.vim


नोट: फ़ाइलों में वाक्यविन्यास की जाँच के~/.vim/syntax/ruby.vim साथ कुछ नहीं करना है ; यह सिंटैक्स हाइलाइटिंग के लिए है । देखिए robots.thoughtbot.com/writing-vim-syntax-plugins
Nathan Long

जवाबों:


9

सिंथेटिक के लिए रूबी निष्पादन योग्य निर्दिष्ट करें

ruby -cकिसी फ़ाइल के सिंटैक्स की जांच करने के लिए सिंथेटिक कॉल , इसलिए यह दिखाई देने वाली त्रुटियां रूबी के किस संस्करण पर निर्भर करती हैं।

आप इसे उसी तरह इंगित कर सकते हैं जिसे आप इस तरह से उपयोग करना चाहते हैं:

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

नोट: सिंथेटिक के नए संस्करणों पर:

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

$ type rubyआपको बताएगा कि आपका वर्तमान रूबी निष्पादन योग्य कहां है। रूबी इंस्टॉलरों के पास अपने स्वयं के सम्मेलन हैं जहां वे अपने बायनेरिज़ को रखते हैं। उदाहरण के लिए:

  • रूबी- इंस्टॉलेशन ~/.rubiesजैसे रास्तों पर माणिक इंस्टॉलेशन और विशिष्ट संस्करण डालता है~/.rubies/ruby-2.2.0/bin/ruby
  • RVM~/.rvm/rubies जैसे रास्तों पर माणिक प्रतिष्ठानों और विशिष्ट संस्करणों को रखता है~/.rvm/rubies/ruby-2.2.0/bin/ruby

FYI करें: यदि आप rvm का उपयोग कर रहे हैं तो यह होगाlet g:syntastic_ruby_exec = '~/.rvm/rubies/ruby-2.2.0/bin/ruby'
बेन

@ अच्छा अंक - अपडेटेड उत्तर
नाथन लॉन्ग

3
सिंथेटिक के नए संस्करण के लिए, यह है:let g:syntastic_ruby_mri_exec='path/to/ruby/executable'
RantriX

1
यदि आप rbenv का उपयोग कर रहे हैं, तो आपको ऐसा करने में सक्षम होना चाहिए let g:syntastic_ruby_exec = '~/.rbenv/shims/ruby'कि जब माणिक संस्करण स्विच करते हैं तो इसे स्वचालित रूप से चुनना चाहिए, मुझे लगता है।
थर्मेटिक्स

अच्छा @Thermatix .. मैंने system("rbenv which ruby")अपने .vimrc
rthbound का

4

टर्मिनल मैकविम का उपयोग करते हुए मुझे भी यह समस्या थी, जिसे इस तथ्य से जटिल किया गया था कि मैं zsh का उपयोग कर रहा था, जो कि किसी कारण से मैं rvm बाइनरी का सम्मान नहीं कर रहा था जो मैंने सिंथेटिक दिया था। मुझे एहसास हुआ कि !echo $PATHटर्मिनल मैकविम में चलने पर मेरे रास्ते जहां गलत थे, मेरे पास कई सिस्टम पथ थे जो कि मेरे नियमित शेल में संलग्न थे जो अभी भी डिफ़ॉल्ट एमआरआई को लोड करने का कारण नहीं है।

इसे ठीक करने के लिए, मुझे अपने .vimrc में सिंटैक्स चेकर को निर्दिष्ट करने की आवश्यकता नहीं थी, हालांकि मुझे यह अपडेट करना था कि ज़ीरो कैसे शुरू हुआ। इस सूत्र का उपयोग करते हुए: http://vim.1045645.n5.nabble.com/MacVim-and-PATH-td3388705.html मैंने बस चलाना समाप्त कर दिया sudo mv /etc/zshenv /etc/zprofileऔर अब सब कुछ काम करता है और mvim में मेरे रास्ते सही हैं। यह भी rvm के माध्यम से एक नया रूबी संस्करण स्थापित करते समय सिंटैस्टिक को अपडेट करने की समस्या को हल करना चाहिए।



यादृच्छिक सवाल - "टर्मिनल macvim" सिर्फ विम नहीं है? सादे विम का उपयोग करके टर्मिनल में मैकविम का उपयोग करने से आपको क्या लाभ होगा?
निक

0

रेल परियोजना के लिए।

  • .ruby-versionप्रोजेक्ट रूट पर फ़ाइल में माणिक संस्करण सेट करें ।
  • और प्रोजेक्ट रूट से अपनी विम शुरू करें।

Syntastic निर्दिष्ट माणिक संस्करण के साथ वाक्यविन्यास जाँच करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.