2010-03-25 17 views
12

में सीएसएस के साथ इंडेंटेशन परेशानता मैं हाल ही में टेक्स्टमैट से विम में स्थानांतरित हो गया हूं, और वास्तव में स्विच पसंद कर रहा हूं। हालांकि, मेरे पास सीआईएम सिंटैक्स का उपयोग करके घुंघराले ब्रेसिज़ के भीतर विम संभालता है जिस तरह से विम को एक खुजली है। मैं simple_pairs.vim का उपयोग करता हूं, जो मेरी समस्या से कुछ करने के लिए हो सकता है या नहीं, लेकिन मुझे ऐसा नहीं लगता है, क्योंकि चीजें PHP, जावास्क्रिप्ट आदि में ठीक काम करती हैं। मुझे बताएं ...वीआईएम

मैं आम तौर पर अपना समूह संदर्भ द्वारा सीएसएस नियम खरोज का उपयोग कर, इसलिए जैसे:

ul#nav { 
    margin: 10px; 
} 
    ul#nav li { 
    float: left; 
    margin-right: 4px; 
    } 

इसका मतलब है कि जब मैं अपने ul#nav li नियम, { के बाद टाइप करें (जो सम्मिलित करता है एक } अपने आप संगत) और एंटर दबाएँ, मैं समापन ब्रेस पर होना चाहता हूँ ul#… के समान इंडेंटेशन स्तर, लेकिन इसके बजाय मुझे ऐसा कुछ मिलता है:

ul#nav { 
    margin: 10px; 
} 
    ul#nav li { 
} 

तो मुझे मैन्युअल रूप से अतिरिक्त कदमों को इंडेंट करना होगा। जैसे मैंने कहा, PHP, जावास्क्रिप्ट, आदि में वही काम करना ठीक काम करता है। क्या किसी को पता है कि मैं इसे कैसे ठीक कर सकता हूँ? मुझे यह समझने में सक्षम होने के लिए विम की सिंटैक्स परिभाषा फाइलों के बारे में पर्याप्त जानकारी नहीं है कि PHP सिंटैक्स फ़ाइल में यह क्या काम करता है, और इसे सीएसएस पर बंद कर देता है ... धन्यवाद।

+1

मुझे संदेह है कि इसमें 'simple_pairs.vim' के साथ कुछ करना है। मैंने अपने कंप्यूटर पर अपने उदाहरण की कोशिश की (बिना 'simple_pairs') और यह काम करता है क्योंकि आप इसे काम करना चाहते हैं। – Peter

+0

आह, आप सही हैं ... मान लीजिए मुझे पहले कोशिश करनी चाहिए थी। क्या आप (या किसी और के) के बारे में कोई विचार है कि इसे कैसे हल किया जाए? –

+0

यदि आप चयनकर्ताओं को घोंसले में रुचि रखते हैं तो आपको [SCSS] (http://sass-lang.com/#nesting) में देखना चाहिए। – gmeben

उत्तर

11

मैं यहाँ नेस्टेड कर्ली कोष्ठक लिए एक बहुत अच्छा मांगपत्र कोड मिला:

https://gist.github.com/762326/bcbd35239db7f26447f1c2323037d20a5219471d

आप .vim/मांगपत्र/css.vim में सहेज सकते हैं और यह इंडेंट का एक बहुत बेहतर कार्य करेंगे डिफ़ॉल्ट से सीएसएस।

इसके अलावा, यह .less फ़ाइलों के लिए भी काम करता है, लेकिन आपको इसे अपनी .vimrc फ़ाइल में जोड़ना पड़ सकता है।

जिथब में लिपि एक ही प्रबंधक द्वारा आधिकारिक css.vim के रूप में, केवल 6 साल की नई है। उनके पास कुछ अलग लाइनें हैं।

+0

धन्यवाद, यह बहुत अच्छी तरह से काम करता है। – romainl

0

इसे cindent और smartindent के साथ करना है। उनमें से एक इस व्यवहार का कारण बनता है।

मैं भूल गया था जो एक (शायद उन दोनों?), लेकिन मैं उन्हें अपने ~/.vimrc फ़ाइल से निकाल दिया, और सीएसएस फ़ाइलों के लिए केवल autoindent

2

मैं इस किया था रखा:

au BufEnter *.css set nocindent 
au BufLeave *.css set cindent 

मैं नहीं था ' टी smartindent सेट है, लेकिन आप इसे भी जोड़ सकते हैं।

यह कहता है कि जब आप .css फ़ाइल का बफर दर्ज करते हैं, तो आपको cindent को अनसेट करना चाहिए, और जब आप बफर छोड़ते हैं तो आपको इसे वापस सेट करना चाहिए।

+2

और यदि सिंडेंट शुरुआत से सेट नहीं किया गया था? मुझे लगता है कि सेटलोकल का उपयोग करना बेहतर है (केवल .css फ़ाइल के साथ बफर को प्रभावित करने के लिए) और एक css फ़ाइल खोलते समय इसे सेट करने के लिए BufRead, BufNewFile का उपयोग करें, उदा। 'एयू बुफरेड, बुफन्यूफाइल *। सीएसएस सेटलोकल नोसिंडेंट'। – olsner