2009-02-06 13 views
13

में एम्बेडेड सिंटैक्स हाइलाइटिंग, मेरे पास एक कस्टम एक्सएमएल फ़ाइल प्रारूप है जिसमें कुछ टैग के भीतर कोड के ब्लॉक हो सकते हैं।विम

उदाहरण के लिए:

<Root> 
    <Sql> select * from foo </Sql> 
    <MoreJunk> ... </MoreJunk> 
    <Python><![CDATA[ 
    def Bar(*args): 
     return False 
    ]]></Python> 
</Root> 

मैं कैसे विम <Sql> टैग के अंदर पाठ के लिए प्रकाश डाला SQL सिंटैक्स का उपयोग करें और <Python> टैग के अंदर पाठ के लिए अजगर higlighting उपयोग करने के लिए मिल सकता है?

मुझे पता है कि विम पहले से ही ऐसा कर सकता है क्योंकि यह HTML फ़ाइलों के अंदर जावास्क्रिप्ट को सही ढंग से हाइलाइट करता है।

मैंने HTML सिंटैक्स फ़ाइल का निरीक्षण करने की कोशिश की लेकिन इसे समझ नहीं पाया।

+0

http://superuser.com/questions/929134/extend-vims-syntax- हाइलाइटिंग-for-only-some-files दिखाता है कि XML रंग का विस्तार कैसे करें। –

उत्तर

21

अजगर उदाहरण के साथ अपने एक्सएमएल के लिए आप इस तरह कुछ करने के लिए होता है:

runtime! syntax/xml.vim 
unlet b:current_syntax 
syntax include @Python syntax/python.vim 
syntax region pythonCode start=+<Python>+ keepend end=+/</Python>+ [email protected] 

ये लाइनें एक्सएमएल वाक्य रचना और अजगर वाक्य रचना शामिल होंगे, और जहां विम अजगर का उपयोग करेगा एक अजगर क्षेत्र निर्दिष्ट एक्सएमएल सिंटैक्स के बजाय वाक्यविन्यास ...

बेशक, यह सब वीआईएम में अच्छी तरह से प्रलेखित है। देखें: वह: सिंटैक्स फ़ाइलों को शामिल करने के तरीके पर समन्वयित करें।

+0

आप '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'है – Orwellophile

1

यह document वर्णन करता है कि अपना स्वयं का वाक्यविन्यास हाइलाइटिंग कैसे लिखें। आपको शायद यह समझने में सक्षम होना चाहिए कि एचटीएमएल-सिंटैक्स हाइलाइटिंग जावास्क्रिप्ट के साथ कैसे काम करता है, इसके साथ संदर्भ के रूप में।