2011-09-29 8 views
20

को पहचानने के लिए विम प्राप्त करना मैं अपने सी कोड जैसे मेरी एक्सएमएल फाइलों को इंडेंट करने में मदद करना चाहता हूं। हालांकि, जब मैंएक्सएमएल

gg=G 

यह सब कुछ बाईं ओर सेट करता है। क्या मुझे वाक्यविन्यास निर्दिष्ट करने की आवश्यकता है? क्या एक्सएमएल एक भाषा के रूप में मान्यता प्राप्त है?

उत्तर

24

अपने .vimrc में डाल

filetype plugin indent on 

विम स्वचालित रूप से है एक्सएमएल के रूप में फाइल .xml पहचान करने के लिए। आपको

set nocompatible 

डालने की आवश्यकता हो सकती है।

फाइल एक्सटेंशन .xml नहीं है, तो आप

:set filetype=xml 

का उपयोग करके एक्सएमएल तरह विम खतरा यह कर सकते हैं के बाद आप उस, विम के autoindention (और वाक्य रचना हाइलाइटिंग, और omnicomplete (उस xml में बस बंद कर देता है कर टैग, लेकिन यह अभी भी कुछ है)) xml के लिए ठीक से काम करेगा।

+1

संगत मोड में विम चलाना पुराना vi चल रहा है ... जो कि संगत मोड का बिंदु है, लेकिन यह है बस दुखी है कि यह डिफ़ॉल्ट है। –

+1

यदि आप javaFX में FXML संपादित कर रहे हैं, तो 'set filetype = xml' कमांड आपकी फ़ाइल में धन्य वाक्यविन्यास रंग लाता है। मिठाई! – ncmathsadist

5

हाँ, :set syntax=xml काम करना चाहिए। Vim 7.3 में, यह :set indentexpr=XmlIndentGet(v:lnum,1) सेट करता है।

यदि आपके पास एक लाइन फ़ाइल है, तो आपको प्रत्येक टैग के बाद न्यूलाइन डालने के लिए :%s/\(<[^>]*>\)/\1\r/g की आवश्यकता हो सकती है (या इसे अलग-अलग विभाजित करें)।

फिर, gg=G काम करना चाहिए।

+0

मैं फेडोरा कोर की एक बहुत पुराने संस्करण :(vim 7.2 के साथ Stuck चल रहा हूँ क्लिक फ़ॉर्मेट करने के लिए है, तो मुझे नहीं पता ऑटो इंडेंट प्राप्त करें। – IslandCow

+0

@IslandCow मुझे नहीं लगता कि यह मायने रखता है। यदि आपके पास 'XmlIndentGet' फ़ंक्शन नहीं है तो आपको vim-7.3 रनटाइम से 'इंडेंट/xml.vim' प्राप्त करने की आवश्यकता है। मुझे कुछ भी दिखाई नहीं दे रहा है इस फ़ाइल में vim-7.3-specific। – ZyX

+0

एक्सएमएल सिंटैक्स विंडोज़ पर 7.2 में ठीक काम करता प्रतीत होता है। उपयोगकर्ता के रूप में आपको इंडेंटएक्स के बारे में चिंता करने की ज़रूरत नहीं है, जब तक वाक्यविन्यास है ठीक है आप ठीक होना चाहिए। (यद्यपि आप 'filtype = xml' को इसके बजाय सेट भी कर सकते हैं।) –

0

अपने .vimrc फ़ाइल को यह पंक्ति जोड़ें:

:map <Space>fx :%s/\ </\r</g<cr>:%s/\ android/\randroid/g<cr>:g/^$/d<cr>gg=G` 

space fx