2011-08-12 8 views
8

से रूबी कोड चलाना क्या विम में एक रूबी प्रोग्राम को संपादित करने के बाद यह संभव है कि संपादक में अभी भी कमांड लाइन का उपयोग न करें? :!ruby %विम

यह उपयोगी या आपके उपयोग के मामले के आधार पर नहीं हो सकता है:

+0

मुझे यह मार्गदर्शिका उपयोगी मिली: http://alisnic.github.io/posts/vim-run-hotkey/ – eugenevd

उत्तर

15

विम से, आप के साथ मौजूदा बफर चला सकते हैं।

इसी तरह, अगर तुम सच में :!command

+0

मैंने "हैलो वर्ल्ड" डालने का प्रयास किया है, लेकिन:! Ruby% ने किया - cmd.exe/c ruby ​​test.rb और विंडो को बंद करने के लिए कोई भी कुंजी दबाएं ... और कुछ नहीं – Sergey

+0

आपको इसे निष्पादित करने से पहले अपने बफर को सहेजना होगा। तो कोशिश करें ': w' –

+0

धन्यवाद, यह काम करता है – Sergey

0

नहीं उपयोग करके किसी भी शेल कमांड आह्वान। विम का उपयोग रूबी का उपयोग करता है, अगर इसे निर्माण समय पर एक्सटेंशन भाषा के रूप में आंतरिक खपत के लिए जोड़ा जाता है। आप बफर को बाहरी रूबी दुभाषिया को जेवियर टी के रूप में पाइप कर सकते हैं।

0

@Xavier के समाधान के लिए एक अतिरिक्त के रूप में मैं अपने .vimrc अंदर निम्नलिखित तरीके से यह बाध्यकारी सिफारिश करते हैं:

" run ruby code using leader-r only when inside a .rb file 
au BufRead, *.rb nmap <leader>r :!ruby %<cr> 
0

हाँ, यह संभव है। उदाहरण के लिए कहता है कि मैं एक दस्तावेज़ शब्द हैलो 100000 में लिखना चाहता हूं अब मैं मैन्युअल रूप से ऐसा नहीं करूंगा लेकिन मैं रूबी स्क्रिप्ट का उपयोग करूंगा और इसे विम में चलाऊंगा।

:w ! ruby > testfile.txt 

प्रेस दर्ज क्या ऐसा करेंगे कि है:

10000.times do 
     puts "hello" 
end 

बाहर निकलने प्रेस तो बच इस टाइप करने से पहले: टर्मिनल में vim script.rb इस कोड लिखकर प्रकार एक नई फ़ाइल बनाना यह स्क्रिप्ट को vim में चलाएगा और लौटाई गई स्ट्रिंग को testfile नामक टेक्स्ट फ़ाइल में जोड़ देगा। सुनिश्चित करें कि आपके पास एक ही निर्देशिका में फ़ाइल है या आप नाम के साथ निर्देशिका निर्दिष्ट कर सकते हैं।

0

यह एक पुरानी सवाल है, लेकिन मैं हर बार एंटर मार पुष्टि करने के लिए बिना @xavier

अपने .vimrc और आप वर्तमान रूबी स्क्रिप्ट चलाने के लिए सक्षम हो जाएगा में इस रखो द्वारा जवाब tweak करना चाहता था:

autocmd BufRead, *.rb nmap <leader>r :silent !{ruby %}<cr>