2011-01-11 21 views
13

जब मैं html.erb फ़ाइल में हूं, तो मुझे कोई स्निपमैट स्निपेट नहीं मिलता है।वीम html.erb स्निपेट्स ?? स्निपमैट को एक विम टिप की आवश्यकता है

मुझे HTML और रूबी दोनों चाहिए, या सिर्फ HTML ठीक होगा, मैं यह कैसे करूँगा?

क्या मुझे स्निपेट का एक सेट लिखना होगा?

यदि हां, तो क्या उन्हें कॉपी किए बिना मौजूदा स्निपेट में खींचने का कोई तरीका है?

क्या यह देखता है कि एचटीएमएल मोड में जाने के लिए vim कहने का कोई तरीका है। एचटीएमएल erb?

उत्तर

12

स्निपेट snippets नामक निर्देशिका में संग्रहीत हैं ~/.vim फ़ोल्डर में कहीं कहीं।

यदि आप वहां देखते हैं, तो आमतौर पर फ़ाइल प्रति फ़ाइल एक फ़ाइल होती है, वहां एक c.snippets, ruby.snippets है, इसलिए ऐसा लगता है कि आपको क्या करना है, वहां एक erb.snippets बनाने के लिए आपको क्या करना है।

आखिरकार आप ruby.snippets और html.snippets की सामग्री को अपने नए erb.snippets में कॉपी कर सकते हैं।

वैकल्पिक रूप से आप जिथब पर खोज सकते हैं, कुछ लोगों ने अपना स्वयं का erb.snippets कॉन्फ़िगरेशन पोस्ट किया है। https://github.com/scrooloose/snipmate-snippets

सबसे अच्छी बात एक टुकड़ा फ़ाइल को खोलने और वाक्य रचना को देखने के लिए पहले की कोशिश करना होगा, यह बहुत क्या आप सबसे अधिक उपयोग पर अपने खुद के स्निपेट के आधार बनाने के लिए आसान है: उदाहरण के लिए, वहाँ एक अच्छा संग्रह है ।

+0

बहुत बढ़िया धन्यवाद .. एचटीएमएल टैग में एआरबी-रेल की कमी है इसलिए मैं बस में कॉपी करूंगा! धन्यवाद। –

+0

आपने इसे कैसे काम किया? मैंने snippets फ़ोल्डर में erb.snippets को जोड़ा है और कुछ स्निपेट जोड़े हैं लेकिन फिर भी यह कहता है कि "पैटर्न नहीं मिला" जबकि स्निपमैट पूरी तरह से .c .rb और अन्य मूल-समर्थित फ़ाइलों के साथ काम करता है। – Sergey

+0

ऐसा लगता है कि इसे फिर से संसाधित करने की आवश्यकता है हालांकि https://github.com/scrooloose/snipmate-snippets/blob/master/ruby-rails/defcreate.snippet। मैं बजाय respond_with का उपयोग करूंगा ताकि मैं कुछ नए स्निपेट पर काम कर रहा हूं। – kgpdeveloper

17

आप ".html.erb" फ़ाइल खोलते समय फ़ाइल प्रकार को HTML पर सेट करने के लिए autocmd का उपयोग कर सकते हैं। इसमें प्लगइन के लिए अवांछित दुष्प्रभाव हो सकते हैं जो ".erb" फ़ाइलों के लिए काम करते हैं।

autocmd BufNewFile,BufRead *.html.erb set filetype=html 

तुम भी एक बिंदीदार filetype का उपयोग करके स्निपेट के एक से अधिक सेट लोड कर सकते हैं:

autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby 

अधिक जानकारी के लिए snipMate मदद में :help snippet-syntax देखें।

+0

इस के साथ सावधान रहें। सिंटेक्स अत्यधिक गड़बड़ हो गया: https://dl.dropbox.com/u/750013/SS_2012-11-01_21%3A27%3A41.png। – robertokl

3

मैं सेट filetype को autocommand विधि का इस्तेमाल किया है, लेकिन फिर मैं इस तरह बातों के लिए एचटीएमएल वाक्यविन्यास त्रुटियों मिला:

<%= image_tag("logo.png", :alt => "Sample App", :class => "round") %> 

पिछले दो कोण कोष्ठक लाल रंग में हाइलाइट किया जाएगा, जो मुझे दिया bonkers। इसलिए, मैंने eruby.snippets नामक एक सिम्लिंक बनाया जो html.snippets को इंगित करता है। यह एक चैंप की तरह काम करता था और अब मुझे दो स्थानों में बदलाव नहीं करना है। मेरे पास non-html eruby snippets के लिए एक eruby-rails स्निपेट निर्देशिका भी है।

यह मैक ओएस एक्स सिस्टम पर है। ध्यान दें कि एक उपनाम काम नहीं करेगा। आपको टर्मिनल को हिट करने और ln कमांड का उपयोग करने की आवश्यकता है। विंडोज सिस्टम पर ऐसा करने के बारे में निश्चित नहीं है।

8

मैं वर्तमान में स्टैक ओवरव्लो पर UltiSnips के लिए एक प्रचार दौरे पर हूं। UltiSnips अन्य फ़ाइल प्रकार का विस्तार का समर्थन करता है, अपने erb.snippets इस प्रकार दिखाई देगा: snipMate के टुकड़े के लिए

extends html, ruby, rails 

snippet temp "A snippet only in Erb" 
erb rules ${1} 
endsnippet 

एक रूपांतरण स्क्रिप्ट UltiSnips के साथ भेज दिया गया है, इसलिए स्विचिंग आसान है।

+0

तो, क्यों न केवल उसमें शामिल है जो क्षय के लिए अल्टिसनिप्स में रेखा को विस्तारित करता है? –

+1

मुझे रूबी, eruby, erb या किसी अन्य एचटीएमएल या वेब संबंधित कोडिंग सामान के बारे में कुछ नहीं पता है। इसलिए - मुझे उपयोगी स्निपेट परिभाषाएं और .snippet फ़ाइलों को यहां प्रदान करने वाले उपयोगकर्ताओं पर भरोसा करने की आवश्यकता है। एक पैच भेजने के लिए स्वतंत्र महसूस करें। – SirVer

2

आप एकाधिक स्निपेट स्कोप को एक फ़ाइल प्रकार में असाइन कर सकते हैं। (मैंने पाया है कि फ़ाइल टाइप को बदलने से कुछ सिंटैक्स हाइलाइटिंग टूट जाती है)।

आप देख सकते हैं कि ERB फ़ाइलों का फ़ाइल प्रकार वास्तव में साथ 'eruby' है:

:set filetype? 

आप maintained fork of snipmate उपयोग कर रहे हैं, ऐसा लगता है कि तुम दोनों eruby.snippets चाहते हैं और eruby- करेंगे snipmate-snippets repository से rails.snippets (honza के स्वामित्व में, लेकिन मेरे पास यहां लिंक करने के लिए पर्याप्त प्रतिष्ठा नहीं है) (उचित सेटअप के लिए स्निपमेट रीडमे के इंस्टाल अनुभाग देखें)।

आप को बनाए रखा कांटा का उपयोग कर रहे हैं, तो मैं जी की स्थापना का मानना ​​है: निम्नलिखित के साथ अपने .vimrc में snipMate.scope_aliases अपने उदाहरण के लिए काम करेंगे:

let g:snipMate = {} 
let g:snipMate.scope_aliases = {} 
let g:snipMate.scope_aliases['eruby'] = 'eruby,eruby-rails' 

मैं एक pull request जोड़ दिया है के लिए snipmate को उनके दस्तावेज अद्यतन।

1

थोड़ी देर के लिए स्निपमैट को आजमाने के बाद UltiSnips बैंडवैगन पर कूदते हुए। सरवीर की तरह, *.erb फ़ाइल के भीतर उपलब्ध एचटीएमएल, रूबी, आदि स्निपेट होने के कारण eruby.snippets फ़ाइल में विस्तार लाइन जोड़ने के समान सरल था।

0
मूल snipMate प्लगइन के साथ

, एक फ़ाइल ~/.vim/ftplugin/erb_snippets.vim बना सकते हैं और इसे में निम्नलिखित डाल:

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype) 
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)